我不知道为什么,但今天我这样做了:
git checkout master
git pull origin master
git checkout myFeature
git merge master
我正在将master
与myFeature
分支合并,以便我可以解决任何冲突
令我惊讶的是,没有显示冲突,它覆盖了我的文件,我丢失了我在该新功能上所做的一切。
Conflicts
不应该出现?
问题2:如何正确还原?我做了 NOT 提交。
如果我执行git log
它会显示所有可用的提交(请记住,我还没有提交此merge
)。我不是100%确定我应该reset --hard
到最后一次提交SHA1。我不想保留当前的更改(merge
),但我希望将所有内容保留在merge
之前,这是最后一次提交。
答案 0 :(得分:1)
问题1:为什么会这样?冲突不应该显示出来?
之所以发生这种情况,是因为你假设你的主人是merge
,而不是你的分支。即
git checkout master
你应该确保你在主分支上,然后运行merge
git merge myFeature
问题2:如何正确还原?我还没有承诺。
要还原上一个marge
,请运行:
git reset head~ <path>
来自SO的回答也可能有所帮助。