git rebase
、git revert
和git reset
是 Git 中用于处理提交历史的三个不同的命令,它们各自有着不同的原理和用途。
1.git rebase
:
原理: git rebase
用于将一个分支的提交应用于另一个分支。它会将当前分支的提交逐个地移动到目标分支的最后,使得提交历史更为线性。
使用场景: 主要用于清理、整理提交历史、合并提交,以及将本地分支同步到远程分支时使用。
注意事项: 由于会改变提交历史,因此在对已推送到远程仓库的分支进行 rebase 操作时需要格外小心,以免引发冲突。
考虑有两个分支:source_branch
和 target_branch
。我们想要将 source_branch
上的提交应用到 target_branch
上。
-
初始状态:
A---B---C (target_branch) \ D---E (source_branch)
-
执行
git checkout target_branch
切换到目标分支:A---B---C (target_branch - HEAD) \ D---E (source_branch)