Git 核心速查表:常用命令、工作流与最佳实践
Git 是世界上使用最广泛的版本控制系统。无论您是独立开发者还是大型团队的一员,掌握 Git 对于管理代码历史和高效协作都至关重要。
本速查表可作为 Git 常用命令和工作流的快速参考。
1. 基础工作流
进行更改并将其保存到存储库的核心周期。
| 命令 | 说明 | 示例 |
|---|---|---|
git init |
在本地初始化一个新的 Git 仓库 | git init |
git clone |
创建远程仓库的副本 | git clone [url] |
git add |
将更改暂存,准备进行下次提交 | git add . (添加所有) |
git commit |
将暂存的更改保存到历史记录中 | git commit -m "feat: login" |
git status |
查看当前工作目录的状态 | git status |
git push |
将本地提交上传到远程仓库 | git push origin main |
git pull |
从远程获取并合并更改 | git pull origin main |
git fetch |
从远程下载更改(但不合并) | git fetch origin |
2. 分支与合并
分支允许您在隔离的环境中开发不同的功能或进行修复。
- 创建分支:
git branch [name] - 切换分支:
git checkout [name](或git switch [name]) - 创建并切换:
git checkout -b [name] - 合并分支:
git merge [name](将 [name] 合并到当前分支) - 变基分支:
git rebase [name](将当前分支的提交重新应用在 [name] 之上) - 删除分支:
git branch -d [name]
3. 撤销更改
如何修复错误或恢复到之前的状态。
- 反转提交:
git revert [commit-hash](创建一个新的提交来撤销之前的更改) - 重置 (Soft):
git reset --soft HEAD~1(撤销提交,但保留已暂存的更改) - 重置 (Hard):
git reset --hard HEAD~1(撤销提交并删除所有更改!请谨慎使用) - 暂存更改:
git stash(临时隐藏未提交的更改) - 弹出暂存:
git stash pop(取回之前暂存的更改)
4. 检查与调试
用于查看历史记录和查找错误的工具。
| 命令 | 说明 |
|---|---|
git log |
显示提交历史记录 |
git diff |
显示提交之间或工作区之间的差异 |
git blame [file] |
查看文件中每一行是由谁修改的 |
git show [commit] |
显示特定提交的详细信息 |
git bisect |
使用二分查找定位引入错误的提交 |
常见问题 (FAQ)
Q: Merge (合并) vs Rebase (变基):我该用哪一个?
A: Merge 会创建一个新的“合并提交”,并保留完整的历史记录和时间顺序。Rebase 通过将您的提交移动到目标分支的最顶端来重写历史,从而创建一个更整洁、线性的历史。准则:永远不要在公共分支上使用 Rebase;在推送代码前,可以用它来整理本地的提交记录。
Q: 如何解决合并冲突?
A: 当发生冲突时,Git 会标记受影响的文件。1. 打开文件并寻找 <<<<<<<、======= 和 >>>>>>>。 2. 手动编辑代码,保留您想要的部分。 3. 执行 git add [file]。 4. 执行 git commit。
Q: 什么是 "detached HEAD" (游离头指针)?
A: 这意味着您检出了一个特定的提交或标签,而不是一个分支。您当前不在任何分支上。如果您在此时进行新提交,切换分支后这些提交将会丢失。要保存更改,请执行:git checkout -b new-branch-name。
Q: .gitignore 的最佳实践是什么?
A: 始终忽略环境机密文件 (.env)、构建产物 (dist/、build/)、依赖库文件夹 (node_modules/) 以及操作系统生成的文件 (.DS_Store)。建议为您使用的语言或框架选用 GitHub 提供的官方模板。
Tool3M 上的相关工具
- 首页:发现更多开发者工具和参考资料,助力您的开发效率。