在推入后,不能在git中压缩提交
我正在使用git开发一个项目(没有队友,只有我)。 我一直在做提交,合并,并将它们推送到远程(所有这些都希望我学会了如何重新绑定并修复历史),现在我想重新设置已经在远程的所有更改(只有1个主分支只有1个用户),通过rebase我的意思是我想压扁并重命名一些提交。
我正在使用他们在这个链接中建议的命令...如何压扁git提交后提交? ,但问题是我得到一些错误,我不明白他们,这里是显示问题的屏幕截图:
===========================错误作为文本==================== ============
使用的命令:
git rebase -i origin/master~2 master
(它应该只显示2个提交,但由于某种原因它显示了超过2个,如40+)
错误信息:
interactive rebase in progress; onto 9bdd944
Last commands done (15 commands done):
pick 7af3656 "commit message"
pick 7355eff "another commit message"
Next commands to do (110 remaining commands):
pick fc10330 "another commit message"
pick f22d8c0 "another commit message"
You are currently rebasing branch 'master' on '9bdd944'.
nothing to commit, working tree clean
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyways, use:
git commit --allow-empty
Otherwise, please use 'git reset'
Could not apply 7355eff... "another commit message"
===========================错误作为文本==================== ============
它看起来像一团糟,任何帮助我解决这个问题的提示将不胜感激,我是新的使用Git,我敢打赌,这对一些高级用户来说很容易。
你可以轻松做到这一点的另一种方法是发布:
git reset -soft d0b8a84d
git commit -m "squashed everything after d0b8a84d"
git push -f
这将首先将历史记录重置为提及的提交以及基本上“撤消”的所有更改,但它们仍保存在暂存区域中。
然后,您立即使用新的提交提交所有这些更改。
然后你把它们推回到你的遥控器。 由于您正在重写已发布的历史记录,因此需要一支部队。
Git rebase也可以完成,但是如果你想要做的只是将所有提交后的某个点压缩到一个提交中,上述操作就容易得多。 在合并的情况下,rebase会提取所有提交,这可能会让事情变得困难。
如果您想要结合特定的提交或更改旧提交的提交消息等,交互式重新分配功能会更强大。但在您的情况下,上述方法非常容易。
链接地址: http://www.djcxy.com/p/49045.html上一篇: Can't squash commits in git after they have been pushed