【问题标题】:git pull auto-merge failedgit pull 自动合并失败
【发布时间】:2014-04-14 14:54:59
【问题描述】:

我们为所有用户使用一个分支。用户每次尝试推送时,都需要先拉取其他更改。这导致 git automerge 在大多数情况下都可以正常工作。

昨天,我们的一位用户执行了上述操作,结果导致冲突,导致自动合并失败。现在,该人解决了冲突,而不是将所有文件作为此合并的一部分提交,而是仅提交和推送冲突的文件(在解决它们之后)。

这导致了一种情况,他未提交的所有文件现在在远程仓库中显示为旧文件。

更改仍然存在于他的机器上,如果我们转到文件历史记录但没有被拉出,我们也可以在 git 中看到它们。

有什么办法吗?

顺便说一句,我们不使用 --rebase 或 --ff-only 选项。

【问题讨论】:

  • 尝试将分支重置为较早的提交。
  • 或樱桃挑选所有被覆盖的提交并再次推送它们
  • 更改已经在远程。重置会在我的本地更改它们,我将如何推送? Cherry-pick 不是一个选项,丢失的更改很多,并且跨越多个文件。
  • 您需要挑选每个提交并再次推送到远程,以便该提交覆盖的更改将在远程存在。
  • 没有别的办法了吗?这些变化可能会持续几周。小伙子刚放假回来。顺便说一句,为什么会发生这种情况?抱歉,我是 git 的菜鸟。

标签: git bitbucket git-pull automerge


【解决方案1】:

这就是我解决这个问题的方法 -

  • 在错误提交之上有 5-6 次提交。
  • 我们还原了这些提交以及错误的提交。
  • 再次提交并推送正确的文件。
  • 重播了再次还原的提交。

我问了另一个问题here 以了解为什么会这样。

特别感谢 @eatSleepCode 在提出解决方案时提供的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 2018-09-10
    • 2011-11-13
    • 2012-06-03
    • 2020-07-25
    • 2013-05-26
    • 2015-06-13
    相关资源
    最近更新 更多