如何"重置"更改为"从父分支合并"?

时间:2017-05-30 04:23:00

标签: git github

我对Git术语不太熟悉所以请使用更常见的术语和解释。我正在使用Github Desktop,我已经将其提交到我的分支机构。现在我想打开拉取请求来掌握,但在我这样做之前,我使用选项"更新来自Master"首先从主服务器获取所有更改,这样当我执行pull和merge时,我不会在主服务器上发生任何冲突。

当我从Master更新时,我遇到了一些冲突。像往常一样,我去解决这个冲突。但后来我意识到我错误地解决了冲突,我想"重置"文件的状态,如冲突的开始,所以我可以做。我现在还不知道该怎么做。

  • 我尝试过git stash所有更改,以便我可以更新Master"再次,但git stash失败了。 git stash之前从未失败过。 (fatal: git-write-tree: error building trees Cannot save the current index state)。
  • 我试过git reset,但似乎没有重置。而我所知道的是git reset实际上是在撤消我最近的提交,所以我担心我的提交现在会搞乱来自master的更新和未提交的代码。

我应该做些什么来重置"文件的状态就像冲突的开始所以我可以做冲突解决了吗?感谢。

1 个答案:

答案 0 :(得分:2)

如果合并错误,您可以执行以下步骤:

  • git reset HEAD~1
  • git add。
  • git reset --hard

这将删除最新提交。现在你可以重新进行合并了。

但我也建议另一种解决合并冲突的方法:rebase。使用rebase,您需要移入功能分支并运行git rebase -i master之类的命令。如果没有冲突,那么您的分支将从最新的主人开始:就像您的主人将是最新的一样。 rebase移动所有提交,因此当rebase遇到冲突时,rebase被“暂停”并且您被邀请解决每个冲突。如果您遵循rebase指令,对于每个有冲突的提交,您需要手动修复提交,git add然后git rebase --continue(但只需按照命令说明进行操作)。

相关问题