在尝试恢复我对.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'
我要做的是反转我对init.el文件所做的更改,然后执行另一个我要反转的提交。我更愿意还原而不是重置 - 硬,因为据我所知,后者完全删除了最近的提交。我想创建一个新的提交,以便我可以“恢复”恢复。
换句话说,我想要做的就是这个
Git Commits [A]...[B]
将恢复为
Git Commits [A]...[B]...[A']
我做错了吗?
编辑:我尝试进行差异/合并,然后再进行另一次提交但是它仍然给了我这个新的错误消息:
haziz@haziz> git revert 7fe3f0ba3182b591f11c0b59e006dc6c990b7470
fatal: Your local changes would be overwritten by revert.
Please, commit your changes or stash them to proceed.
如何在不使用.gitigore文件的情况下告诉它忽略(但不删除)未分段文件。坦率地说,我并不关心大多数未受控制的文件,这些文件是emacs临时文件等。
答案 0 :(得分:9)
问。有什么冲突?
合并该修订版的反向修补程序时的冲突,以后的修订版更改了相同的代码行:合并冲突
修改如果您要还原最新提交,则表示您进行了本地更改(请参阅
git status
)。不要忘记您可以进行暂存和非暂存本地更改。要轻松查看所有本地更改,请使用git diff HEAD
您应该打开未合并的文件(git status
)以查看冲突的文件。您很快就会看到<<<<
,=====
,>>>>>
冲突标记。
您可以使用
git mergetool
通过更多用户友好的工具解决冲突,如Meld,KDiff3,Gvim等。
答案 1 :(得分:0)
您在未跟踪文件和未分段文件之间混淆。
Git不知道未经跟踪的文件,您永远不会git add
编辑它们(即git status
会在Untracked files:
部分显示它们。
非暂存文件是具有本地更改的跟踪文件,您没有提交这些文件进行提交(即git status
将在Changes not staged for commit:
部分显示)。如果您运行git commit -a
,这些更改将包含在下一次提交中,但如果您在没有git commit
的情况下运行-a
,则不会包含这些更改。
告诉git忽略未分级的更改是没有意义的:更改就在那里,它们会触及Git关心的文件。