当前位置:   article > 正文

Git合并多次提交_git同步允许合并不同历史

git同步允许合并不同历史

一、查看提交历史,git log

首先你要知道自己想合并的是哪几个提交,可以使用git log命令来查看提交历史,假如最近4条历史如下:

commit 3ca6ec340edc66df13423f36f52919dfa3......

commit 1b4056686d1b494a5c86757f9eaed844......

commit 53f244ac8730d33b353bee3b24210b07......

commit 3a4226b4a0b6fa68783b07f1cee7b688.......
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

历史记录是按照时间排序的,时间近的排在前面。

二、git rebase

想要合并1-3条,有两个方法

2.1、从HEAD版本开始往过去数3个版本
git rebase -i HEAD~3
  • 1
2.2、指名要合并的版本之前的版本号
git rebase -i 3a4226b
  • 1

请注意3a4226b这个版本是不参与合并的,可以把它当做一个坐标

三、选取要合并的提交

3.1 、执行了rebase命令之后,会弹出一个窗口,头几行如下:
pick 3ca6ec3   '注释**********'

pick 1b40566   '注释*********'

pick 53f244a   '注释**********'
  • 1
  • 2
  • 3
  • 4
  • 5
3.2、将pick改为squash或者s,之后保存并关闭文本编辑窗口即可。改完之后文本内容如下:
pick 3ca6ec3   '注释**********'

s 1b40566   '注释*********'

s 53f244a   '注释**********'
  • 1
  • 2
  • 3
  • 4
  • 5
3.3、然后保存退出,Git会压缩提交历史,如果有冲突,需要修改,修改的时候要注意,保留最新的历史,不然我们的修改就丢弃了。修改以后要记得敲下面的命令:
git add .  

git rebase --continue  
  • 1
  • 2
  • 3

如果你想放弃这次压缩的话,执行以下命令:

git rebase --abort  
  • 1
3.4、如果没有冲突,或者冲突已经解决,则会出现如下的编辑窗口:
# This is a combination of 4 commits.  
#The first commit’s message is:  
注释......
# The 2nd commit’s message is:  
注释......
# The 3rd commit’s message is:  
注释......
# Please enter the commit message for your changes. Lines starting # with ‘#’ will be ignored, and an empty message aborts the commit.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
3.5、输入wq保存并推出, 再次输入git log查看 commit 历史信息,你会发现这两个 commit 已经合并了。

四、同步到远程 git 仓库

git push origin xxx -f or git push origin xxx --force
  • 1

查看远程仓库效果,多次 commit 已被合并成一次 commit。

五、参考链接

https://segmentfault.com/a/1190000007748862

https://blog.csdn.net/u012308586/article/details/104923400

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/68122
推荐阅读
相关标签
  

闽ICP备14008679号