首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git,如何“强迫”一个壁球重基

Git,如何“强迫”一个壁球重基
EN

Stack Overflow用户
提问于 2016-09-02 13:15:25
回答 1查看 3.3K关注 0票数 6

我需要“压扁”一些人一起承诺。通常,我习惯做这样的事情:

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

中,操作前后的文件必须是相同的

获得我需要的东西的命令是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-02 13:33:18

最简单的解决方案(中止当前重基之后)是:

代码语言:javascript
复制
$ git reset --soft HEAD~10

现在,您的头移动了十个提交回,但您的文件都没有改变:它们都将显示为新的更改要提交。

然后,就像平常一样把它们交出来。

这种方法的缺点是,在编写新提交消息时,无法访问中间提交消息。

另一种方法是通过指定冲突解决策略,使原始rebase -i命令为您工作。

代码语言:javascript
复制
$ git rebase -i -s theirs HEAD~10

了解您是如何从一开始就得到冲突的,这将是很有趣的,不过,rebase -i通常应该应用得很干净。除非这十个人中有一些是合并?

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39293376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档