PyCharm集成Git指南
Pycharm 集成 Git
“总地图”:
| 操作 | 含义 |
|---|---|
| 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
就说明配置完成了
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
然后选择:
Git
点击:
Enable
这样这个项目就已经成为一个 Git 本地仓库了。
你可以理解成,原来只是:
我的Python项目
现在变成:
我的Python项目
↓
本地 Git 仓库
实际上 Git 会在项目目录下面偷偷创建:
.git
这个文件夹就是 Git 保存版本记录的地方。
如果你已经看不到:
Enable Version Control Integration
通常说明这个项目已经初始化过 Git 了。
4. 在 PyCharm 里面登录 GitHub
打开:
Settings / Preferences
然后:
Version Control → GitHub
点击:
Add account
然后最简单直接选:
Log In via GitHub
这时候浏览器会打开 GitHub。
登录账号 → 授权 PyCharm。
完成以后回来,你应该可以看到自己的 GitHub 账号。
所以这里你要区分:
本地: Git ↓ 管理本地代码版本
远程:
GitHub
↓
网上存放 Git 仓库的平台
配置 Git ≠ 配置 GitHub。
5. 第一次 初始化项目
项目初始化 Git 之后,你会发现很多文件可能变成红色。
红色通常代表:
这个文件还没有被 Git 跟踪。
最简单的方法:直接把项目分享到 GitHub
这一步其实 PyCharm 做得非常方便。
点击:
Git → GitHub → Share Project on GitHub
然后会出现一个窗口。
里面主要有:
Repository name
Remote
Private
Description
其中:
-
Repository name:就是 GitHub 上仓库的名字。
-
Remote,保持:不用改。
origin
然后点击:Share
第一次初始化项目会出现:
建议这样选:
❌ .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 创建仓库
给本地 Git 添加远程仓库
建立 origin
上传项目
二、如何提交远程代码
7. 以后修改代码以后怎么 Push?
工作流程永远记住三个词:
Add
↓
Commit
↓
Push
例如你新增了 .gitgnore文件
不过 PyCharm 里面 Add 很多时候已经自动帮你处理,所以平时最常见就是:
左边的 .gitignore 已经是绿色,在 PyCharm 里绿色表示它已经被 Git Add(加入版本控制)
修改代码
↓
Commit
↓
Push
所以现在:
右键项目 → Git → Commit Directory... → 写提交说明 → Commit → Push
下方的git,大家可以看到我们刚刚提交内容已经提交上去
三、新建分支
在 PyCharm 里做分支,完整流程就是:新建分支 → 在分支上改代码 → Commit → Push 分支
1. 从 master 新建一个分支
先确认你现在处于:
master
然后点击 PyCharm 顶部显示的 master,或者:
Git → Branches...→ New Branch
比如输入:然后创建。
feature-test
这时候 PyCharm 会自动切换过去,顶部会从:
master
变成:
feature-test
这一步相当于:
git switch -c feature-test
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'
在弹出的 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
现在指向的是同一个提交,合并哪个结果可能都一样。
注意这里逻辑是:
当前所在分支
↓
master
↑
│ Merge
│
feature-test
也就是:
把 feature-test 的代码拿进 master。
不是反过来。不然这一步相当于:把 master 合并进 feature-test
4.2 6. 最后再 Push 一次 master
合并完成以后,目前只是:
feature-test
↓
本地 master
GitHub 上的 master 还没有更新。
所以最后:
Git → Push...
看到:
master → origin/master
现在才变成:
本地 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 窗口
这里一般会有三个选择:
因为你现在站在:
master
所以:
Accept Yours
就是:
全部保留当前 master 的内容。
也就是最后留下:
print("hello,world")
而:
Accept Theirs
就是:
全部保留正在合并进来的 feature-test2 的内容。
最后留下:
print("hello,world2")
但是我建议你选:
Merge
因为这才是真正演示“如何手动解决冲突”。
点 Merge 后,会出现三栏:
左边 中间 右边
master Result feature-test2
当前分支 最终结果 要合并进来的分支
你可以选择左边,也可以选择右边,甚至可以自己在中间改成:
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。
六、切换分支
如果你想切换到另一个分支,可以点击:
然后点击 PyCharm 顶部显示的 分支→ 点击你想要切换的分支 → checkout
切换完后,你就会发现头部现实的是切换后的分支
于是你就回到了:
master
你会发现刚才 feature-test 里面的一些修改可能暂时“不见了”。
这是正常的,因为你现在看的是 master 分支自己的版本。





























浙公网安备 33010602011771号