我需要“压扁”一些人一起承诺。通常,我习惯做这样的事情:
git rebase -i HEAD~10
但是,现在我得到了下面的错误:
错误:无法应用2009972.修复 当您解决了这个问题后,运行"git重基--继续“。如果您喜欢跳过此修补程序,请运行"git重基--跳过“。若要检查原始分支并停止重基,请运行"git abort“。
如您所见,git假装我解决了所有冲突。现在,我不想要,也不能解决任何冲突。
我需要的是一种告诉git这样的方法:“嘿,我不想合并任何东西:只需将这个分支中的所有跟踪文件--它们出现在最后一个提交/头中--在最近一个提交之前丢弃/删除前10个提交,最后”应用“这些文件作为一个新提交”:
例如,假设这是所有提交散列的列表:
1-2-3-4-5-6-7-8-9-10-11-12,头部指向12。
我想压缩/删除/不管这个操作叫什么,包括从2-11开始的所有提交,这样在git log之后的最终结果是:
1-12
在中,操作前后的文件必须是相同的。
获得我需要的东西的命令是什么?
发布于 2016-09-02 13:33:18
最简单的解决方案(中止当前重基之后)是:
$ git reset --soft HEAD~10现在,您的头移动了十个提交回,但您的文件都没有改变:它们都将显示为新的更改要提交。
然后,就像平常一样把它们交出来。
这种方法的缺点是,在编写新提交消息时,无法访问中间提交消息。
另一种方法是通过指定冲突解决策略,使原始rebase -i命令为您工作。
$ git rebase -i -s theirs HEAD~10了解您是如何从一开始就得到冲突的,这将是很有趣的,不过,rebase -i通常应该应用得很干净。除非这十个人中有一些是合并?
https://stackoverflow.com/questions/39293376
复制相似问题