【发布时间】:2012-11-24 01:05:40
【问题描述】:
我正在使用 git-emacs 通过 Emacs 向 github 提交代码。
add 和 commit 都可以,但似乎 git-emacs 不支持 git push 操作。当我输入M-x git-push 时,它会回复“没有这样的命令”。
【问题讨论】:
-
你可以在
eshell中运行git push。
我正在使用 git-emacs 通过 Emacs 向 github 提交代码。
add 和 commit 都可以,但似乎 git-emacs 不支持 git push 操作。当我输入M-x git-push 时,它会回复“没有这样的命令”。
【问题讨论】:
eshell中运行git push。
较新版本的 Emacs 提供以下命令:
C-x v P
更长的版本:
M-x vc-push
(如 @CAT0 所述)。如果您的 Emacs 版本不支持该命令,请尝试:
M-& git push [Enter]
更长的版本:
M-x async-shell-command [Enter] git push [Enter]
正如@mariotomo 所指出的,这比下面的同步版本更好,因为它为输出打开了一个缓冲区。
M-! git push [Enter]
更长的版本:
M-x shell-command [Enter] git push [Enter]
(M- 是“元密钥”的缩写,可以是 Esc 或 Alt 或 Ctrl+[)。
(如果你在 Windows 上并且犹豫使用默认进入讨厌的 DOS shell 的 shell,尝试从 Cygwin 以 emacs-w32 运行 Emacs,事情会更明智)。
【讨论】:
M-&,这样emacs就不会被卡住等待git完成,并且命令输出会出现一个缓冲区。
在 emacs 25(也许更早)中有命令
vc-push
这正是它应该做的。它势必 C-x v P
【讨论】:
通过git-emacs,可以通过以下方式推送:
M-x git-cmd,绑定到C-x g .(在git-status窗口中绑定到.)push
【讨论】:
这是一个不幸的副作用,内置的 Emacs VCS 支持 (vc-mode) 主要是为 cvs、subversion 等具有完全不同工作流程的工具构建的。很快就添加了 DVCS 支持(在 Emacs 23 中)。我希望vc-mode 在不久的将来会得到改进。到那时……
正如@khagler 所说,Magit 支持git push。另一个值得您探索的可靠选择是Egg。
【讨论】:
你是对的,它没有。不过magit可以推送。
【讨论】:
$ 检查 Magit 是否在登录时挂起。更新到最新的 Magit,如果这没有帮助 - 很好的推送只是 shell 中的几次击键......