【问题标题】:Why does Git remember and use a conflict resolution from an aborted rebase without asking me?为什么 Git 会在不询问我的情况下记住并使用中止的 rebase 中的冲突解决方案?
【发布时间】:2011-07-03 01:41:58
【问题描述】:

我对我的分支foo做了一个rebase

git rebase master

做了一些冲突解决方案,然后决定我不想这样做,然后中止了。

git rebase --abort

所有分支日志历史看起来都很正常。现在我想重新开始同样的过程。

git rebase master

当 git 遇到它第一次遇到的第一个冲突时,它会像以前一样将文件列为冲突。但不是用<<<<< 等标记冲突,它只是在我第一次解决冲突后显示文件的状态。有趣的是它有这个功能……但我实际上想以不同的方式解决其中一个冲突,所以我不希望它记住并重新应用。

这里到底发生了什么,我可以把它关掉吗?

【问题讨论】:

  • 您是否启用了rerere? progit.org/2010/03/08/rerere.html
  • 啊哈--是的,我几年前打开了它并忘记了它。对于git rebase 的特定调用,似乎没有标志可以将其关闭,太糟糕了。
  • @admitruk 不确定创建标签 rerere 是否合适
  • @CharlesB:我认为将 rerere 作为标签很棒:可识别且高度具体。你有什么建议? git-rerere 代替?
  • 链接现在好像坏了。最好用官方git-scm.com/docs/git-rerere

标签: git conflict rebase


【解决方案1】:

您可以使用 rerere 的“忘记”功能删除记住的冲突解决方案。

【讨论】:

  • 谢谢…你必须使用…
  • 出于某种原因忘记对我不起作用(不知道为什么,它没有报告任何错误),忘记一切rm -rf .git/rr-cache - 不理想,但可以很方便,尤其是因为我找不到一个忘掉所有的好方法。
【解决方案2】:

使用git checkout --conflict=merge -- your_file获取有冲突文件的版本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    相关资源
    最近更新 更多