Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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 我如何提交当前显示在Vim中的文件?_Git_Vim_Vim Fugitive - Fatal编程技术网

Git 我如何提交当前显示在Vim中的文件?

Git 我如何提交当前显示在Vim中的文件?,git,vim,vim-fugitive,Git,Vim,Vim Fugitive,我正在编辑分为三个窗口打开的文件。我想把它们提交到存储库中。有什么命令可以完成这项任务吗?有几种方法可以完成这项任务。我将概述使用:Gstatus的最具交互性的方法 通过:Gstatus打开状态窗口 通过/ 通过- 在状态窗口中通过cc开始提交 创建提交消息并保存并关闭窗口。(我更喜欢:x) 您还可以使用zj和zk在节之间移动 在节上使用-将暂存/取消暂存该节中的所有文件 有关:Gstatus的更多帮助,请参阅:h:Gstatus或g?当处于:Gstatus缓冲区时 可以使用:Gwrite和

我正在编辑分为三个窗口打开的文件。我想把它们提交到存储库中。有什么命令可以完成这项任务吗?

有几种方法可以完成这项任务。我将概述使用
:Gstatus
的最具交互性的方法

  • 通过
    :Gstatus打开状态窗口
  • 通过
    /
  • 通过
    -
  • 在状态窗口中通过
    cc
    开始提交
  • 创建提交消息并保存并关闭窗口。(我更喜欢
    :x
  • 您还可以使用
    zj
    zk
    在节之间移动
  • 在节上使用
    -
    将暂存/取消暂存该节中的所有文件
有关
:Gstatus
的更多帮助,请参阅
:h:Gstatus
g?
当处于
:Gstatus
缓冲区时

可以使用
:Gwrite
:windo
跳过
:Gstatus
窗口,以加快速度

:windo Gw
:Gcommit
您还可以使用
-m
标志跳过整个提交窗口。e、 g.
:Gcommit-m“短消息”

我推荐关于逃犯的视频:

要了解更多信息,请参阅:

:h fugitive
:h :Gstatus
:h :Gw
:h :Gcommit
:h :windo
:h :x
无逃犯:

:windo !git add %
:!git commit -m "My message goes here"
最后一个命令可以替换为:

:!git commit --interactive

非常有用。我的一个抱怨是,在执行
:x
保存提交消息后,状态窗口也会关闭。但是我经常打开状态窗口,并且索引和工作副本不同。我正在使用
diffget
(第二次vimcast中描述的
--patch
工作流的改进版本)逐段添加更改。因此,我真正想要的是能够提交(我确实希望使用完整窗口来编写可能的多行消息),但我不希望状态窗口在保存后关闭。这可能吗?您可以在
:Gstatus
窗口或
:Gcommit--verbose
中执行详细提交
cvc
。它将在新选项卡中打开一条提交消息,其中包含更多提交详细信息