作者回复: 👍
作者回复: 你指不想要本地刚merge出来的commit,对吗?如果工作区、暂存区和HEAD一起回答merge前,执行 git reset --hard HEAD^ 就行啦
作者回复: 好问题。命令行没法写出来(因为自己本身已经是最根的那个commit了),当交互命令回车后,会出现设置界面,我们不妨自己手工把最根部的那个commit添加进来,并配置好对应的策略。
作者回复: 其实原理搞懂了,哪种代码平台一点就通了。我到时候看看,把github,gitlab和gerrit三个平台merge的方式做个比较好了
作者回复: git会清理的
作者回复: 👍
作者回复: https://stackoverflow.com/questions/3685001/git-how-to-fix-corrupted-interactive-rebase
如果安装里面不同人的方法都搞不定的话,git reset --hard 先回到rebase前,然后再试试看吧。
作者回复: 不好意思,没看懂问题的描述
作者回复: 你先 git rebase --abort 退出前一个未执行完毕的rebase,然后重新再来。
作者回复: 两个用来squash的commit合并后,最后的内容与前面一个commit没发生任何变化,git提示你,如果还是坚持生成commit的话,那就加上参数 --allow-empty,否则用reset。
作者回复: 哦,明白你的意思啦,你在练习squash(合并)的时候,不妨给合并前的HEAD对应两个分支,一个用来做rebase -i的操作,另一个分支拿来做恢复之前的commit用。
这样能听明白吗?
作者回复: 好问题,可以实践一下。我估摸着从那个有分叉的commit及之前的commit都会保留的,即使其他分支做了合并。