Git 合并多次Commit与退出Rebase

别等时光非礼了梦想. 提交于 2020-08-04 09:33:38

Git 合并多次Commit与退出Rebase

 

合并Commit

git执行merge request时commit太多即不美观也影响查看提交log和版本回退,因此需要在git提交时合并多次Commit

1.git commit

修改代码,并执行3次commit,可以看到已经有3次提交日志

 

2.选择合并commit的数量

执行 git rebase -i HEAD~n,这里n为要合并的commit的次数,如果我们要合并当前3个,n就是3,如果要合并当前5个commit,n就是5

git rebase -i HEAD~3

 

3.合并commit

执行命令后可以看到刚才提交的3次commit已经出现,这里pick代表选中,这里需要pick一次commit,对另外两个commit执行squash操作,squash翻译为压入,塞入,合并

A.squash选择对应要合并的commit

pick xxxxxxx 测试V1
squash xxxxxxx 测试V2
squash xxxxxxx 测试V3

B.wq保存

执行后wq出现以下提示,1st是pick的commit,剩下两个是squash的commit

C.合并并退出

继续执行wq,显示合并成功

D.查看git log

日志合并成功

E.push到线上

合并commit时,如果合并的commit中之前已经git push到代码库,则执行git push origin HEAD 或者 git push origin HEAD:master 时会提示rejected,拒绝push请求,这里一般需要-f强行push:

push到当前分支

git push -f origin HEAD

push到master分支 

git push -f origin HEAD:master

 

4.合并时出现问题怎么办

A.退出git rebase

rebase时会出现冲突情况,代码很混乱,这时候需要先退出rebase

git rebase --abort

B.版本回退

退出rebase如果版本也有问题则需要强制回到某个对应版本

git reset --hard commit_id

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!