掌握 Git 是现代软件开发的必备技能。为了让你更直观地理解,我将这些操作分为三个阶段:初次获取、日常提交和保持同步。
以下是 Git 核心操作的简明指南:
1. 初始设置 (只需做一次)
在开始之前,你需要告诉 Git 你是谁。这会确保你的代码提交记录上有正确的名字和邮箱。
Bash
# 设置你的用户名
git config --global user.name "你的名字"
# 设置你的邮箱 (最好与GitHub账号邮箱一致)
git config --global user.email "your_email@example.com"
2. 从 GitHub 获取代码 (Clone)
当你加入一个新项目,或者想把 GitHub 上的仓库(Repository)下载到你本地电脑时,使用 clone。
命令:
Bash
git clone <仓库地址>示例:
git clone https://github.com/username/project.git
说明:这不仅下载了文件,还建立了本地文件夹与远程 GitHub 仓库的连接。
3. 日常开发:修改与推送 (Push)
这是你每天最常用的 "三部曲":暂存 (Add) -> 提交 (Commit) -> 推送 (Push)。
第一步:查看状态 (可选但推荐)
看看你修改了哪些文件。
Bash
git status
提示: 红色文件表示未被追踪或已修改但未暂存,绿色文件表示已准备好提交。
第二步:暂存更改 (Add)
将你的修改放入“暂存区”(就像把商品放进购物车)。
Bash
# 添加所有修改过的文件
git add .
# 或者只添加特定文件
git add filename.py
第三步:提交到本地 (Commit)
将暂存区的内容正式保存到本地的历史记录中(就像在购物车结账,生成小票)。
Bash
git commit -m "这里写清楚你修改了什么,例如:修复登录页面的Bug"
第四步:推送到 GitHub (Push)
将你的本地提交上传到 GitHub 服务器(将本地仓库同步到远程)。
Bash
git push
如果你是第一次推送到一个新的分支,可能需要使用:
git push -u origin <分支名>
4. 保持同步 (Pull)
如果你的队友更新了代码,或者你在另一台电脑上更新了代码,你需要把这些变更拉取到当前电脑。
命令:
Bash
git pull作用: 这相当于执行了“下载更新”并自动“合并”到你当前的文件中。
5. 分支操作 (进阶但必要)
为了安全起见,我们通常不直接在 main (主分支) 上修改代码,而是新建一个分支开发。
创建并切换到新分支:
Bash
git checkout -b feature-new-login # 或者新版 Git 命令: git switch -c feature-new-login切回主分支:
Bash
git checkout main # 或者: git switch main
5.我完全不想要本地的修改(强制覆盖)
如果你确定 requirements.txt 的修改可以丢弃,只想立刻把远程代码拉下来:
请执行这个“核弹级”命令(注意:这会丢失所有未提交的本地修改):
PowerShell
git reset --hard HEAD
然后再拉取:
PowerShell
git pull
6.我想保留修改,但先拉取代码(推荐)
如果你不确定,或者想把代码先存起来,用 stash 是最万能的,不管你有没有 add 过都能处理:
强制把所有修改(包括暂存区)藏起来:
PowerShell
git stash拉取代码:
PowerShell
git pull(可选)把修改拿回来:
PowerShell
git stash pop
7.我想手动撤销那个文件的状态
如果你不想用 reset --hard 重置所有文件,只想针对 requirements.txt 进行彻底撤销:
先把文件从暂存区移除(Unstage):
PowerShell
git reset HEAD requirements.txt再撤销文件的修改:
PowerShell
git checkout requirements.txt最后拉取:
PowerShell
git pull
简单总结: 最省事的方法是直接用 方案一(如果你不在乎本地修改)或者 方案二(最安全)。
8. 分支合并 (Merge) —— 将开发成果汇入主干
合并分支通常有严格的先后顺序。假设你在 feature-well-log 分支上完成了新功能的开发,现在需要将其合并到 main 分支。
第一步:确保当前分支的代码已全部提交
在切换分支前,工作区必须是干净的。
Bash
git status
# 如果有未提交的改动,请先 git add 和 git commit
第二步:切换回目标分支 (主分支)
你需要站在“接收代码”的分支上进行合并操作。
Bash
git switch main
第三步:拉取云端最新代码 (极其重要)
在合并前,必须确保你的本地 main 分支是最新的,防止覆盖队友的代码。
Bash
git pull origin main
第四步:执行合并操作
将 feature-well-log 分支的代码合并到当前的 main 分支。
Bash
git merge feature-well-log
第五步:推送到 GitHub
合并完成后,此时本地的 main 已经包含了新功能,你需要将其同步到云端。
Bash
git push origin main
9. 解决合并冲突 (Resolve Conflicts)
在执行 git merge 时,如果你和队友恰好修改了同一个文件的同一行代码,Git 就会提示冲突(Conflict),此时合并会暂停。
第一步:查看哪些文件冲突了
Bash
git status
# 冲突的文件会被标记为 "both modified"
第二步:手动修复冲突
打开冲突的文件,Git 会在代码中插入类似这样的标记:
Plaintext
<<<<<<< HEAD
主分支上原有的代码
=======
你在 feature-well-log 分支上写的新代码
>>>>>>> feature-well-log
你需要手动删除这些标记(<<<<<<<, =======, >>>>>>>),并保留你最终想要的代码逻辑。
第三步:标记冲突已解决并提交
修改完所有冲突文件后,重新暂存并提交。
Bash
git add .
git commit -m "解决合并冲突,整合测井数据分析模块"
10. 查看提交历史 (Log)
当项目越来越复杂,你需要随时查看历史存档记录和分支走向。
查看基础历史记录:
Bash
git log
查看更直观的分支树状图 (强烈推荐):
这个命令不仅能看到历史,还能用图形化的方式展示各个分支是如何分化和合并的。
Bash
git log --oneline --graph --decorate --all