我经常遇到这种情况,我想:
当有人在我之前推送更新时,通常会发生这种情况。
现在,我知道最好的解决方案是在推送之前需要记住pull
。但是当我忘记时,我不停地告诉我需要合并所有东西。
我已经尝试git checkout .
“清除”它并重新开始,但这不起作用。我也试图强行结账。在任何一种情况下,它都说我还有合并要提交。
是否有一种简单的方法来获取当前状态并“将其吹走”以便我可以重新检查并重新编辑一个文件?
答案 0 :(得分:2)
如果我理解这个问题,我认为你的意思是:
始终发生在活动项目上。在这一点上做一个自动进行合并的拉,没有什么不对,之后,如果没有冲突,你就可以推送(如果有冲突,你迟早要解决它们< EM>反正)。
但有些团队不喜欢历史看起来如何(在一个活跃的项目中,这可能会失控)。所以另一种解决方案是进行Fetch-and-Rebase。这将找到您的提交,撤消它们,获取新提交并重新应用您的提交。然后你可以推送,历史将看起来像一行,代价是准确性(你的提交发生在历史的另一个时间)。
答案 1 :(得分:1)
在运行git reset HEAD~1
之前,您需要运行git checkout .
。这会导致你的最后一次提交被撤消&#34;并且更改将在&#34;预先添加&#34;阶段。然后你将结账时吹走。
或者,您可以在一个命令中完成这两个例程。
git reset --hard HEAD^
这将导致最后一次提交被撤消,并且HEAD将在您进行任何更改之前指向上一次提交。这很可能是你的同事开始工作的承诺。
这需要在你提交同事提交之前发生。