我对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的更新和未提交的代码。我应该做些什么来重置"文件的状态就像冲突的开始所以我可以做冲突解决了吗?感谢。
答案 0 :(得分:2)
如果合并错误,您可以执行以下步骤:
这将删除最新提交。现在你可以重新进行合并了。
但我也建议另一种解决合并冲突的方法:rebase。使用rebase,您需要移入功能分支并运行git rebase -i master
之类的命令。如果没有冲突,那么您的分支将从最新的主人开始:就像您的主人将是最新的一样。 rebase移动所有提交,因此当rebase遇到冲突时,rebase被“暂停”并且您被邀请解决每个冲突。如果您遵循rebase指令,对于每个有冲突的提交,您需要手动修复提交,git add
然后git rebase --continue
(但只需按照命令说明进行操作)。