Git -- 合并commit
1.git rebase -i
(同 git rebase 中的)
使用 git rebase -i
命令
执行后跳到一个新界面:
在之前修改commit信息方法中,执行git rebase -i后进入编辑界面前面的值可以为squash
,我们将pick改为edit是修改commit信息,改成squash就是合并commit了。
我们把commit:h、g、e合并为一个: 合并的f。
我们执行``后,进入编辑模式,将pick修改为s(squash的缩写)
保存退出编辑模式,会进入下面的界面,
默认的合并之后的commit信息就是红框中的内容,可以对它进行编辑,改成我们想要的commit,这里改为:“合并e g h的commit”,再去 git log
查看,e、g、h合并为了一个commit
2. git reset
执行git reset --soft commit_id
(commit_id为远程仓库最新的commit_id,一般也是切出此feature分支时的commit_id),之前在工作区的代码依然在工作区,之前提交过的会在暂存区,执行git add
(如有需要),执行git commit -m "msg"
,提交一次commit信息。
原理就相当于,把切分支之后所有的commit,通过reset撤销掉,期间修改的代码会保留在暂存区和工作区,工作区有代码则git add
,没有直接git commit
。
例: 合并commit:e、f、g 为一个新的commit:efg
执行 git reset --soft d7e5d51
(d7e5d51为对应commit提交信息为d的commit_id),查看状态可知e、f、g的修改现在都在暂存区
此时git commit -m "efg"
,通过 git log 查看验证
3. git merge --squash
(gitlab上的squash?) 例:master合并br1分支代码,br1已经有多次commit了。
// --squash 会暂停commit提交,要不然一个merge会自动提交commit
over
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!