@startuml
!define RECTANGLE class
' Git 高级功能
RECTANGLE "Git 高级功能" {
[交互式变基] as Rebase
[子模块] as Submodule
[Git 钩子] as Hooks
[二分查找] as Bisect
[工作流优化] as Workflow
}
' 功能说明
Rebase --> [重写历史]
Rebase --> [整理提交]
Submodule --> [仓库嵌套]
Submodule --> [代码复用]
Hooks --> [自动化]
Hooks --> [质量控制]
Bisect --> [问题定位]
Workflow --> [提高效率]
@enduml
掌握Git的基本命令后,你已经可以进行日常的代 码版本管理工作。但Git的强大远不止于此,本文将介绍一些Git的高级技巧和最佳实践,帮助你更高效地管理代码和协作开发。
高级提交技巧
交互式添加
交互式添加允许你选择性地添加文件的部分更改:
git add -i
# 或者更直接地
git add -p
这个命令会提示你选择每个更改块(hunk)是否添加到暂存区,适用于一个文件包含多个独立更改但你只想提交部分更改的情况。
修改提交
修改最近的提交:
# 修改最近的提交信息
git commit --amend
# 不修改提交信息,只更新提交内容
git commit --amend --no-edit
交互式变基(Interactive Rebase)
交互式变基是 Git 中最强大的功能之一,它允许你重写提交历史,整理提交,甚至重新排序提交。
# 交互式变基,整理最近的n个提交
git rebase -i HEAD~n
执行此命令后,Git 会打开一个编辑器,显示最近的n个提交,你可以对每个提交执行不同的操作:
pick- 保留该提交reword- 修改提交信息edit- 修改该提交内容squash- 将该提交与前一个提交合并fixup- 将该提交与前一个提交合并,但丢弃该提交的提交信息drop- 删除该提交