PyCharm集成Git指南

git

Pycharm 集成 Git

“总地图”:

image-20260911223821975

image-20260911223858668

操作 含义
Add 把这次准备提交的文件放进“待提交区”
Commit 在本地保存一个代码版本,并写一句这次改了什么
Push 把本地已经 Commit 的版本上传到 GitHub
Pull 把 GitHub 上别人/其他电脑的新提交拉到本地并整合
Checkout / Switch 切换分支,比如从 master 切到 feature-test
Merge 把另一个分支的内容合并到当前所在分支
Fetch 先看看远程有什么新提交,但暂时不合进自己的代码
Remote / origin 本地 Git 对 GitHub 仓库地址起的名字,默认通常叫 origin

一、初始化项目

1. 先让 PyCharm 找到 Git

打开:

PyCharm → Settings/Preferences → Version Control → Git

一般 PyCharm 会自动找到 Git。你直接点旁边的 Test。

如果下面显示类似:

Git executed successfully
Git version 2.xx.x

就说明配置完成了

image-20260911213251919

2. 配置 Git 的用户名和邮箱

这个和 GitHub 登录不是一回事。

Git 需要知道:

“这次提交是谁提交的?”

最简单是在 PyCharm 底部打开 Terminal,输入:

git config --global user.name "你的名字"

例如:

git config --global user.name "kivelson"

然后:

git config --global user.email "你的GitHub邮箱"

例如:

git config --global user.email "xxx@gmail.com"

查看有没有配置成功:

git config --global user.name
git config --global user.email

官方文档也说明,第一次 Commit 时如果没有配置用户名,PyCharm 会提示你配置

3. 给当前 PyCharm 项目初始化 Git

假设你现在已经写好了一个 Python 项目。

点击:

VCS → Enable Version Control Integration

image-20260911213741178

然后选择:

Git

image-20260911213752584

点击:

Enable

这样这个项目就已经成为一个 Git 本地仓库了。

你可以理解成,原来只是:

我的Python项目

现在变成:

我的Python项目
    ↓
本地 Git 仓库

实际上 Git 会在项目目录下面偷偷创建:

.git

这个文件夹就是 Git 保存版本记录的地方。

如果你已经看不到:

Enable Version Control Integration

通常说明这个项目已经初始化过 Git 了。

image-20260911213848213

4. 在 PyCharm 里面登录 GitHub

打开:

Settings / Preferences

然后:

Version Control → GitHub

点击:

Add account

然后最简单直接选:

Log In via GitHub

这时候浏览器会打开 GitHub。

登录账号 → 授权 PyCharm。

完成以后回来,你应该可以看到自己的 GitHub 账号。

所以这里你要区分:

本地:
Git
↓
管理本地代码版本

远程:
GitHub
↓
网上存放 Git 仓库的平台

配置 Git ≠ 配置 GitHub。

image-20260911213332317

5. 第一次 初始化项目

项目初始化 Git 之后,你会发现很多文件可能变成红色。

红色通常代表:

这个文件还没有被 Git 跟踪。

image-20260911214056890

最简单的方法:直接把项目分享到 GitHub

这一步其实 PyCharm 做得非常方便。

点击:

Git → GitHub → Share Project on GitHub

image-20260911214151112

然后会出现一个窗口。

里面主要有:

Repository name
Remote
Private
Description

image-20260911214217832

其中:

  • Repository name:就是 GitHub 上仓库的名字。

  • Remote,保持:不用改。

origin

然后点击:Share

第一次初始化项目会出现:

image-20260911214454159

建议这样选:

❌ .idea/
   ❌ inspectionProfiles/
   ❌ profiles_settings.xml
   ❌ .gitignore
   ❌ git-init.iml
   ❌ modules.xml
   ❌ vcs.xml

✅ main.py

因为 .idea 是 PyCharm 自己的项目配置文件,比如窗口配置、模块配置、检查规则等,不属于你的 Python 源代码。

另外最好在项目最外层新建一个 .gitignore,写:

.idea/
__pycache__/
*.pyc
.venv/
venv/

最后项目应该大概是:

git-init/
├── .gitignore      ✅ 提交
├── main.py         ✅ 提交
└── .idea/          ❌ 忽略

PyCharm 会自动帮你:

1. 在 GitHub 创建仓库
  1. 给本地 Git 添加远程仓库

  2. 建立 origin

  3. 上传项目

image-20260911214601936

二、如何提交远程代码

7. 以后修改代码以后怎么 Push?

工作流程永远记住三个词:

Add
 ↓
Commit
 ↓
Push

例如你新增了 .gitgnore文件

image-20260911214904526

不过 PyCharm 里面 Add 很多时候已经自动帮你处理,所以平时最常见就是:

左边的 .gitignore 已经是绿色,在 PyCharm 里绿色表示它已经被 Git Add(加入版本控制)

修改代码
 ↓
Commit
 ↓
Push

所以现在:

右键项目 → Git → Commit Directory... → 写提交说明 → Commit → Push

image-20260911215206439

image-20260911215218916

下方的git,大家可以看到我们刚刚提交内容已经提交上去

image-20260911215300527

三、新建分支

在 PyCharm 里做分支,完整流程就是:新建分支 → 在分支上改代码 → Commit → Push 分支

1. 从 master 新建一个分支

先确认你现在处于:

master

然后点击 PyCharm 顶部显示的 master,或者:

Git → Branches...→ New Branch

image-20260911220020030

比如输入:然后创建。

feature-test

image-20260911220113399

这时候 PyCharm 会自动切换过去,顶部会从:

master

变成:

feature-test

这一步相当于:

git switch -c feature-test

image-20260911220131549

2. 在新分支上修改代码

比如修改 main.py:

print("master")

改成:

print("hello,world")

然后正常:

修改代码
   ↓
Commit

例如 Commit Message:

完成 feature-test 功能

3. 把新分支 Push 到 GitHub

第一次推送这个新分支:

Git → commit Directory....

你会看到类似:

feature-test → origin/feature-test

然后点:

Push

这样 GitHub 上就会同时出现:

master

feature-test

这里非常重要:

本地创建 feature-test,并不会自动让 GitHub 出现这个分支。
Push 以后,远程 GitHub 才会有 origin/feature-test。

对应命令大概就是:

git push -u origin feature-test

四、合并分支

4.1 把 feature-test 合并进 master

现在一定要确认当前分支是:

master

然后:右键项目 → Git → Merge

找到:

feature-test

选择:

Merge 'feature-test' into 'master'

image-20260911221337329

在弹出的 Merge 窗口里,选本地的 Feature 分支,比如:

Local
├── master          ← 你现在在这里
├── feature-test
└── feature-test2   ← 要合并哪个就选哪个

然后点 Merge。

不要优先选:

Remote
└── origin/feature-test2

因为你自己的正常开发流程是:

本地 feature-test2
        ↓
已经 Commit
        ↓
已经 Push 到 origin/feature-test2
        ↓
切回本地 master
        ↓
Merge 本地 feature-test2   ✅
        ↓
Push master

你这里既然说 本地 Feature 分支已经全部推送到远程了,那么理论上:

feature-test2

和

origin/feature-test2

现在指向的是同一个提交,合并哪个结果可能都一样。

image-20260911221458869

注意这里逻辑是:

当前所在分支
        ↓
      master
        ↑
        │ Merge
        │
 feature-test

也就是:

把 feature-test 的代码拿进 master。

不是反过来。不然这一步相当于:把 master 合并进 feature-test

4.2 6. 最后再 Push 一次 master

合并完成以后,目前只是:

feature-test
      ↓
本地 master

GitHub 上的 master 还没有更新。

所以最后:

Git → Push...

image-20260911221945026

看到:

master → origin/master

image-20260911222011553

现在才变成:

本地 feature-test
        ↓
      Merge
        ↓
本地 master
        ↓
      Push
        ↓
GitHub 的 master

整条逻辑线是:

master
  ↓
New Branch
  ↓
feature-test
  ↓
修改代码
  ↓
Commit
  ↓
Push
  ↓
origin/feature-test
  ↓
切回 master
  ↓
Merge feature-test
  ↓
Push master

五、合并分支——有冲突

5.1 两个分支改了相同一行的代码

你现在假设已经有:

master
feature-test

新建一个分支:

feature-test2

然后在 main.py 里改同一行,比如:

print("hello, world 2")

然后正常:

Add
↓
Commit
↓
Push

接下来切回:

master

Master 里刚刚 合并进来的feature-test 分支修改了 Main.py 里边的同一行:

print("hello,world")

现在两个分支就变成了:

               feature-test2
                     ↓
print("我是 feature-test2 分支")
                   /
------------------
                   \
print("我是 master 分支")
                     ↑
                   master

关键是:

两个分支修改了同一个文件的同一行,而且内容还不一样。

这时候 Git 才不知道到底该保留哪一个,所以会产生冲突。如果两个分支修改的是不同位置,通常可以自动合并;真正容易发生冲突的是双方修改了相同位置

5.2 分支合并——存在冲突

然后保持自己当前就在:

master

接着:

右键项目 → Git → Merge...

选择:

Local
└── feature-test2

然后点:

Merge

也就是:

feature-test2
       ↓
     Merge
       ↓
    master

这时候 PyCharm 会发现:

master:
print("hello,world")

feature-test2:
print("hello,world2")

同一行有两个不同版本,于是会弹出 Conflicts / Files Merged with Conflicts 窗口

这里一般会有三个选择:

image-20260911223047772

因为你现在站在:

master

所以:

Accept Yours

就是:

全部保留当前 master 的内容。

也就是最后留下:

print("hello,world")

而:

Accept Theirs

就是:

全部保留正在合并进来的 feature-test2 的内容。

最后留下:

print("hello,world2")

但是我建议你选:

Merge

因为这才是真正演示“如何手动解决冲突”。

点 Merge 后,会出现三栏:

左边                 中间                  右边
master               Result            feature-test2
当前分支              最终结果              要合并进来的分支

image-20260911223143088

你可以选择左边,也可以选择右边,甚至可以自己在中间改成:

print("master 和 feature-test2 合并完成")

也就是说:

解决冲突不是必须二选一,中间 Result 才是真正最终保存的代码。

确认中间内容没问题以后,点击:

Apply Changes

解决冲突以后,一般会形成一次新的 Merge Commit:

feature-test2 ────┐
                  ↓
               Merge Commit
                  ↑
master ───────────┘

所以接下来:

解决冲突
↓
Apply Changes
↓
完成 Merge Commit
↓
Push

最后再:

Git → Push...

把:

master → origin/master

推到 GitHub。

image-20260911223635155

六、切换分支

如果你想切换到另一个分支,可以点击:

然后点击 PyCharm 顶部显示的 分支→ 点击你想要切换的分支 → checkout

image-20260911220515986

切换完后,你就会发现头部现实的是切换后的分支

image-20260911220737754

于是你就回到了:

master

你会发现刚才 feature-test 里面的一些修改可能暂时“不见了”。

这是正常的,因为你现在看的是 master 分支自己的版本。

posted @ 2026-09-14 15:03  言思宁  阅读(74)  评论(0)    收藏  举报