如何使用git emacs进行git推送?
我使用git-emacs通过emacs向github提交代码。如何使用git emacs进行git推送?,git,emacs,lisp,Git,Emacs,Lisp,我使用git-emacs通过emacs向github提交代码。 对于add和commit是可以的,但是git-emacs似乎不支持git-push操作。当我输入M-xgitpush时,它的响应是“没有这样的命令”。你说得对,它没有。但是,可以推送。这是一个不幸的副作用,因为内置的Emacs VCS支持(vc模式)主要是为cvs、subversion等具有完全不同工作流的工具构建的。DVCS支持很快就增加了(在Emacs23中)。我希望vc模式在不久的将来会得到改进。在那之前 正如@khagler
对于
add
和commit
是可以的,但是git-emacs似乎不支持git-push
操作。当我输入M-xgitpush
时,它的响应是“没有这样的命令”。你说得对,它没有。但是,可以推送。这是一个不幸的副作用,因为内置的Emacs VCS支持(vc模式
)主要是为cvs、subversion等具有完全不同工作流的工具构建的。DVCS支持很快就增加了(在Emacs23中)。我希望vc模式
在不久的将来会得到改进。在那之前
正如@khagler所说,Magit支持
gitpush
。您可以探索的另一个可靠选项是。通过git emacs,您可以通过以下方式推动:
M-x git cmd
,它绑定到C-x g.
(在git status
窗口中,它绑定到
)push
较新版本的Emacs提供以下命令:
C-x v P
较长版本:
M-x vc-push
M-x async-shell-command [Enter] git push [Enter]
M-x shell-command [Enter] git push [Enter]
(如@CAT0所述)。如果您的Emacs版本不支持该命令,请尝试:
M-& git push [Enter]
较长版本:
M-x vc-push
M-x async-shell-command [Enter] git push [Enter]
M-x shell-command [Enter] git push [Enter]
正如@mariotomo所指出的,这比下面的同步版本要好,因为它为输出打开了一个缓冲区
M-! git push [Enter]
较长版本:
M-x vc-push
M-x async-shell-command [Enter] git push [Enter]
M-x shell-command [Enter] git push [Enter]
(M-
是“元键”的缩写,可以是Esc
或Alt
或Ctrl+[
)
(如果您使用的是Windows,并且在默认情况下不愿意使用令人讨厌的DOS shell,请尝试从Cygwin以Emacs-w32
的身份运行Emacs,情况会更正常)。在Emacs 25(可能也更早)中,有一个命令
vc推送
这正是它应该做的,它注定
C-x v P所以我转向magit,但我仍然无法推送,阶段和提交是可以的,但当我键入P P进行git推送时,它只是说:“git推送-v……”在控制台中,它并没有真正将任何内容推送到存储库中,您能帮个忙吗?github有一个问题:按
$
检查Magit是否在登录时挂起。更新到最新的Magit,如果这没有帮助,那么推送只是在shell中敲几下键……您可以在git push
e> eshell。更好的是,使用M-&
,这样emacs就不会被困在等待git完成的过程中,命令的输出将显示一个缓冲区。