Git Revert命令后,我无法使用命令行/git。

15

我正在使用 git revert [提交编号] 撤销一个提交。

实际例子为:

git revert 58c128313e353b8dd7d04121824b966faefe68dc

我执行这个操作后,它会将我带到显示还原消息的屏幕,但我无法退出该屏幕,也无法输入任何内容。

我尝试按Q键,这是我退出git日志屏幕的方法,但这也不起作用。当我强制退出终端并重新进入时,还原已经完成。

如何实现还原,然后返回命令行并像往常一样继续工作?

屏幕截图

这是说的内容的屏幕截图。


1
我猜你已经打开了vim:尝试按下ESC,然后输入:q,最后按下Enter - Sbls
很可能正在要求输入提交信息并在VIM中打开屏幕。尝试输入 esc(以清除您可能输入的任何内容),然后输入 :q 并按 enter 键。编辑:@Sbls比我更快地完成了它。 - sudo_coffee
两者都没有起作用。我会上传一个屏幕截图显示它在说什么。 - pjk_ok
我其实不知道如何上传截图? - pjk_ok
可能是如何退出Vim编辑器?的重复问题。 - 1615903
我认为这不应该被视为重复,因为在发布问题之前,我在这个网站上花了很长时间寻找解决方案,并且作为一个新手/相对新手的GIT用户,我不知道我正在使用Vi编辑器或者它是什么。这个答案的存在可能会帮助/节省未来某个人的很多时间。 - pjk_ok
1个回答

19

你正在使用许多Linux发行版中的默认编辑器vivim

要保存文件并退出,完成还原操作,请键入:

Esc:wqEnter

或者,如果您愿意,可以在不保存的情况下中止编辑器:

Esc:q!Enter

如果您希望将来避免使用此编辑器,请找到您想要使用的编辑器(emacs、nano、joe等),并将其设置为默认编辑器。您可以在您的shell文件(例如.bash_profile)中这样做:

export EDITOR=/usr/bin/nano
export VISUAL=$EDITOR

2
你缺少了 : 吗? - sudo_coffee
1
@sudo_coffee 哇,那真是尴尬啊 ;) 感谢提醒,我已经修复了。 - Dan Lowe
这是 esc : q ! enter 版本可行。谢谢。但是,之后当我检查 git 状态时,它没有出现在我的暂存区中?如果我正在从提交中还原它,那么它应该回到暂存区中,不是吗? - pjk_ok
@EmilyChewy 不是的,git revert 会创建一个新的提交记录,其效果是撤销你选择要还原的提交记录之后的所有更改。这就像是一个补丁,但是用于撤销早期的提交记录。由于会创建一个新的提交记录,因此你的暂存区将为空。 - Dan Lowe
啊,我明白了。谢谢丹。 - pjk_ok

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接