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