【问题标题】:aborting a git merge and going back to uncommitted work中止 git 合并并返回未提交的工作
【发布时间】:2016-07-22 06:07:11
【问题描述】:

这是我的情况:

我忘了拉,我开始做我的项目。我今天早上所做的工作与我在该存储库上的最后一次提交完全不同。

我正在提交并且系统提示我拉取,这时我意识到我将遇到大量无法解决的冲突。

我拉,我的项目现在都搞砸了。 有没有办法回到我在进行拉动之前所做的工作?

不要恢复到我上次的提交,因为我会丢失我今天所做的所有工作,而只是把所有的烂摊子藏起来,然后回到 5 分钟前?

【问题讨论】:

  • 也许你应该把git status的输出贴出来,这样我们就可以大致了解一下情况了。
  • 哦,提交后你没有得到拉取的提示。仅当您推动时才会发生这种情况。
  • @BeatBolli 我知道有冲突的文件。问题是它们很难解决。这就是为什么我想回到未提交的工作:/

标签: git git-merge git-pull git-stash


【解决方案1】:

首先,中止未完成的合并:

git merge --abort

然后,撤消上一次提交(导致冲突的那个):

git reset HEAD^

这会将您在提交中所做的更改留在工作树中,因此您可以继续编辑。

【讨论】:

  • git merge --abort 成功了!我现在回到了我今天早上的工作。我也应该 git reset HEAD^ 吗?你能再解释一下这部分吗?我不想搞砸了:)
  • 你现在有三种可能:git reset HEAD^ 只撤消提交;添加更多更改并执行git commit --amend 更改最后一次提交;或添加更多更改并单独提交。
  • git reset HEAD^ 只是删除提交,但将您提交的更改保留在源代码中。
猜你喜欢
  • 2013-06-20
  • 1970-01-01
  • 2018-01-24
  • 2014-08-04
  • 2012-11-15
  • 2011-06-23
  • 2018-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多