现在位置: 首页 > Pycharm 教程 > 正文

PyCharm 版本控制集成

PyCharm 提供了完整的 Git/GitHub 集成功能,让开发者可以直接在 IDE 中完成版本控制操作。


配置 Git/GitHub

  • 打开 文件/PyCharm → 设置 → 版本控制 → Git

  • 在 "Git 可执行文件路径" 中确认 PyCharm 已自动检测到 Git

  • 点击 测试 按钮验证 Git 是否可用

配置用户信息

在终端运行:

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

集成 GitHub

1. 添加 GitHub 账户:

  • 文件/PyCharm → 设置 → 版本控制 → GitHub

  • 点击 + 添加账户

  • 选择登录方式:

    • 通过 Github 登录:通过浏览器授权登录

    • 通过令牌登录:使用个人访问令牌

2. SSH 配置(可选):

  • 生成 SSH 密钥:ssh-keygen -t ed25519 -C "your_email@example.com"

  • 将公钥添加到 GitHub 账户的 SSH keys 设置中


基本操作

我们可以在工具栏上的版本控制按钮创建 Git 仓库:

之后项目上的版本控制按钮就会变成 master(主分支):

提交与推送

提交代码

提交工具窗口(Commit Tool Window)中:

  • 勾选要提交的文件

  • 输入提交信息

  • 选择操作:

    • 提交(Commit):仅本地提交

    • 提交并推送(Commit and Push):提交后立即推送到远程

快捷键

  • 提交:Ctrl+K(Win/Linux) / ⌘K(Mac)

  • 推送:Ctrl+Shift+K(Win/Linux) / ⌘⇧K(Mac)

查看变更

文件状态颜色标记:

  • 蓝色:已修改

  • 绿色:新增

  • 灰色:未跟踪

  • 红色:冲突

拉取与合并

拉取最新代码

  1. Git → PullCtrl+T(Win/Linux) / ⌘T(Mac)

  2. 选择合并策略:

    • Merge:保留所有提交历史

    • Rebase:线性历史记录

合并分支

  1. Git → 分支 → 合并分支

  2. 选择要合并的目标分支

  3. 解决可能的冲突(见 6.3 节)

查看历史与差异

查看提交历史

  1. Git → 显示历史Alt+9

  2. 功能:

    • 查看文件/项目历史

    • 比较不同版本

    • 回滚到特定版本

比较差异

  1. 文件差异

    • 右键文件 → Git → 比较与当前分支

    • Ctrl+D(Win/Linux) / ⌘D(Mac)

  2. 行内差异

    • 修改的行会显示彩色标记

    • 点击标记查看具体修改内容


6.3 解决冲突

1. 冲突产生场景

  • 多人修改同一文件的同一区域

  • 合并分支时出现冲突

  • 拉取代码时提示冲突

2. 解决步骤

  1. 打开合并工具

    • 冲突时会自动弹出合并对话框

    • 或手动打开:Git → 解决冲突

  2. 三窗格对比界面

    • 左侧:你的版本(当前分支)

    • 右侧:他人版本(合并分支)

    • 中间:合并结果编辑区

  3. 处理冲突

    • 点击 >> 接受左侧更改

    • 点击 << 接受右侧更改

    • 手动编辑中间区域合并内容

  4. 标记为已解决

    • 完成编辑后点击 应用

    • 右键文件 → Git → 标记冲突为已解决

  5. 提交合并结果

    • 提交解决后的文件

3. 高级冲突解决

  1. 使用外部合并工具

    • 在设置中配置 文件 → 设置 → 版本控制 → Git → 合并工具

  2. 完全接受某一版本

    • 右键文件 → Git → 接受他们的接受我们的


实用技巧

部分提交

  • 在提交窗口中,可以:

    • 选择文件的特定变更进行提交

    • 右键代码块 → 提交选定行

储藏(Stash)变更

  • 临时保存未完成的修改:

    • Git → 储藏

    • 恢复:Git → 取消储藏

交互式变基

  1. Git → 交互式变基

  2. 可以:

    • 重新排序提交

    • 合并提交

    • 修改提交信息