文章目录
- 1. 概念
- 2. git merge
- 2.1. 示例
- 3. git rebase
- 3.1. 示例
- 4. 总结
1. 概念
在Git版本控制系统中,有两种方式可以将一个分支的更改合并到另一个分支:git merge
和 git rebase
。虽然它们都可以完成相同的任务,但它们的实现方式有所不同,并且在使用时需要谨慎考虑。
2. git merge
git merge
将两个分支的更改合并到一起,形成一个新的提交节点,称为合并提交。这个合并提交将有两个父节点,每个父节点都代表一个分支。这种方法保留了两个分支的历史记录,但可能会导致仓库中存在许多合并提交,使历史记录变得混乱。
2.1. 示例
1.创建一个分支dev
git checkout -b dev
2.随便提交一点代码
3.切换到主分支,也随便提交一点代码
4.运行git merge
将dev
分支合并到主分支,解决完冲突后提交代码
5.运行git log --oneline --graph
查看提交记录
3. git rebase
git rebase
会将一个分支的更改在另一个分支之前重新应用。这个过程中,Git会将当前分支的更改暂存,然后将当前分支更新到目标分支的最新提交。然后,Git会将之前暂存的更改应用到新的基础上,形成一个新的提交节点。这个新的提交节点只有一个父节点,因此历史记录更加线性和干净。
3.1. 示例
- 切换到
dev
分支,并随便提交一点代码
- 切换到
master
分支,随便提交一点代码
- 运行
git rebase dev
合并代码,解决完冲突后运行git add
- 运行
git rebase --continue
- 提交代码
- 运行
git log --oneline --graph
查看提交记录
4. 总结
总的来说,git merge
保留了分支的历史记录,但可能会导致仓库的历史记录变得混乱。而 git rebase
创建了干净的历史记录,但会删除分支的历史记录。因此,在选择使用哪种方法时,需要根据具体情况进行考虑。