Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用git emacs进行git推送?_Git_Emacs_Lisp - Fatal编程技术网

如何使用git emacs进行git推送?

如何使用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

我使用git-emacs通过emacs向github提交代码。
对于
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完成的过程中,命令的输出将显示一个缓冲区。