Git还原错误消息?

haz*_*ziz 5 git git-revert

在尝试恢复我对.emacs.d文件夹的存储库的提交时,我收到以下消息:

haziz@haziz> git revert 7fe3f

error: could not revert 7fe3f0b... .emacs.d contents from ubuntu hp 15
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Run Code Online (Sandbox Code Playgroud)

我想要做的是反转我对init.el文件所做的更改,然后执行另一个我想要撤消的提交.我更愿意还原而不是重置 - 硬,因为据我所知,后者完全删除了最近的提交.我想创建一个新的提交,以便我可以"恢复"恢复.

换句话说,我想要做的就是这个

Git Commits [A]...[B]
Run Code Online (Sandbox Code Playgroud)

将被还原为

Git Commits [A]...[B]...[A']
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?

编辑:我尝试做尽可能最好的差异/合并然后另一个提交,但它仍然给我这个新的错误消息:

haziz@haziz> git revert 7fe3f0ba3182b591f11c0b59e006dc6c990b7470

fatal: Your local changes would be overwritten by revert.
Please, commit your changes or stash them to proceed.
Run Code Online (Sandbox Code Playgroud)

如何在不诉诸.gitigore文件的情况下告诉它忽略(但不删除)未分段文件.我坦率地不关心大多数emacs临时文件等非分页文件.

seh*_*ehe 9

问:有什么冲突?

合并该修订版的反向补丁时的冲突,后来的修订版更改了相同的代码行:合并冲突

编辑如果要还原最新提交,这意味着您有本地更改(请参阅git status).不要忘记您可以进行暂存和未暂存的本地更改.要轻松查看所有本地更改,请使用

   git diff HEAD
Run Code Online (Sandbox Code Playgroud)

您应该打开未合并的文件(git status)以查看冲突的文件.你会看到<<<<,=====,>>>>>冲突标记很快.

您可以使用

git mergetool
Run Code Online (Sandbox Code Playgroud)

使用更多用户友好的工具解决冲突,如Meld,KDiff3,Gvim等.