Git 使用解决合并冲突后还原_远程uu文件

Git 使用解决合并冲突后还原_远程uu文件,git,git-merge,git-stash,Git,Git Merge,Git Stash,我在并行分支中对本地文件做了几处更改。我使用了git stash来保存我的更改,并将其他更改保存到master中,而无需在线推送。因此,我必须解决一些关于文件和冗余文件的合并冲突。一步一步,这是我在git bash上的代码: git stash git pull origin master git stash pop git mergetool 我使用meld asmergetool解决了关于一个文件myFile.py的冲突。我的问题是,在合并步骤中,我忘记了远程文件(myFile\u rem

我在并行分支中对本地文件做了几处更改。我使用了
git stash
来保存我的更改,并将其他更改保存到master中,而无需在线推送。因此,我必须解决一些关于文件和冗余文件的合并冲突。一步一步,这是我在git bash上的代码:

git stash
git pull origin master
git stash pop
git mergetool
我使用meld as
mergetool
解决了关于一个文件
myFile.py
的冲突。我的问题是,在合并步骤中,我忘记了远程文件(
myFile\u remote\u 7572.py
)中的大部分代码。现在,我在笔记本电脑上找不到文件。我想还原它,以便在不重新启动合并步骤的情况下找到我的上一个代码。谢谢…

我假设“忘记了远程文件中的大部分代码”意味着您丢弃了远程部分将带来的内容,并用您自己的更改将其重写

内容仍然存在于您的存储库中

如果尚未执行任何进一步的提交,则可以使用以下命令恢复特定文件中的合并冲突:

git checkout --merge -- that/particular/file
当然,这也会带回您已经解决的文件中的冲突。没有办法保留这些内容,但仍然可以恢复未解决的部分。(所有这些都不会影响其他文件中的冲突(已解决或未解决)

如果全部失败,您仍然可以使用隐藏,并且可以在所有文件中重新开始所有合并冲突:

git reset --hard   # warning! erases all your uncommitted changes
git stash apply    # recover the stash and all its conflicts
尽管您说了
git stash pop
,但隐藏并没有丢失,因为当存在合并冲突时,git实际上不会“弹出”它。这给了您另一个机会说
git stash apply

如果我处在你的位置,我会做以下事情(这是一个稍微专业的用法):


您可能注意到Git会记住在本地计算机上提交的合并解决方案,以便在重复合并时提供帮助。这在这里有点尴尬,因为它会记住并重新使用
该/special/file
中的错误分辨率。因此,我要求Git使用
Git Reere forget

忘记决议,Git只会记住已提交的决议,如果您启用了
Reere
,这不是默认值。
git commit -a           # keep a record of what I have done so far
git reset --hard HEAD~  # go back before the commit to start over
git stash apply
git checkout --merge -- that/particular/file
git rerere forget -- that/particular/file