如何“吹走”GIT合并并重新开始?

时间:2017-08-24 19:52:03

标签: git

我经常遇到这种情况,我想:

  • 我看了一个分支
  • 编辑一个文件
  • 去推
  • 我被告知分支机构已经分歧,我需要合并100次更改

当有人在我之前推送更新时,通常会发生这种情况。

现在,我知道最好的解决方案是在推送之前需要记住pull。但是当我忘记时,我不停地告诉我需要合并所有东西。

我已经尝试git checkout .“清除”它并重新开始,但这不起作用。我也试图强行结账。在任何一种情况下,它都说我还有合并要提交。

是否有一种简单的方法来获取当前状态并“将其吹走”以便我可以重新检查并重新编辑一个文件?

2 个答案:

答案 0 :(得分:2)

如果我理解这个问题,我认为你的意思是:

  • 我看了一个分支
  • 一些时间过去 ...
  • 编辑一个文件
  • 再过一段时间 ......
  • 去推
  • 我被告知分支机构已经分歧,我需要合并100次更改

始终发生在活动项目上。在这一点上做一个自动进行合并的拉,没有什么不对,之后,如果没有冲突,你就可以推送(如果有冲突,你迟早要解决它们< EM>反正)。

但有些团队不喜欢历史看起来如何(在一个活跃的项目中,这可能会失控)。所以另一种解决方案是进行Fetch-and-Rebase。这将找到您的提交,撤消它们,获取新提交并重新应用您的提交。然后你可以推送,历史将看起来像一行,代价是准确性(你的提交发生在历史的另一个时间)。

答案 1 :(得分:1)

在运行git reset HEAD~1之前,您需要运行git checkout .。这会导致你的最后一次提交被撤消&#34;并且更改将在&#34;预先添加&#34;阶段。然后你将结账时吹走。

或者,您可以在一个命令中完成这两个例程。

git reset --hard HEAD^

这将导致最后一次提交被撤消,并且HEAD将在您进行任何更改之前指向上一次提交。这很可能是你的同事开始工作的承诺。

这需要在你提交同事提交之前发生。