草庐IT

git - 编辑 git 提交消息时自动进入插入模式

如果我执行gitcommit,当Vim打开时,我想立即进入插入模式。我注意到filetype在编辑时被设置为gitcommit,所以我想我可以用自动命令来实现。auBufReadgitcommitstartinsert!虽然这不起作用,我做错了什么?解决方案我选择了auFileTypegitcommitexecute"normal!O"|startinsert在当前行之上添加一个新行,然后进入插入模式准备输入消息。 最佳答案 另一种方法:exportGIT_EDITOR='vim+startinsert'或在末尾添加!以从消息结尾开

git - vimdiff 一个文件的当前和以前的 git 版本

有没有一种方法可以使用vimdiff来比较文件的当前版本和相同之前的git版本?例如,我正在ma​​ster分支上处理文件foo.c。我想在ma​​ster~10的foo.c和foo.c之间做一个vimdiff,从旧版本复制一两行。PS我知道gitcherrypick,但那是针对整个文件,而不仅仅是几行。 最佳答案 呃!RTFM。我添加了一个关于这不是gitdifftool用例的PPS,然后开始想知道“gitdifftool究竟做了什么......”。解决方法是:gitdifftoolmastermaster~10--foo.c也就

git - vimdiff 一个文件的当前和以前的 git 版本

有没有一种方法可以使用vimdiff来比较文件的当前版本和相同之前的git版本?例如,我正在ma​​ster分支上处理文件foo.c。我想在ma​​ster~10的foo.c和foo.c之间做一个vimdiff,从旧版本复制一两行。PS我知道gitcherrypick,但那是针对整个文件,而不仅仅是几行。 最佳答案 呃!RTFM。我添加了一个关于这不是gitdifftool用例的PPS,然后开始想知道“gitdifftool究竟做了什么......”。解决方法是:gitdifftoolmastermaster~10--foo.c也就

git - 你如何取消外部 git diff?

我已经将vim设置为我的外部差异工具:[diff]external=git_diff_wrapper#!/bin/shvimdiff"$2""$5"假设我有300个文件已被修改;通过bash,我输入“gitdiff”。它依次启动300个vimdiff,我该如何中止它? 最佳答案 使用:cquit退出带有错误代码的vim。Git将检测到错误并停止打开新的vimdiff。你可能想在你的.vimrc中为它创建一个映射:if&diffmapQ:cquitendif然后只需按Q即可提前中止gitdiff运行。为了让它工作,你必须编辑你的git

git - 你如何取消外部 git diff?

我已经将vim设置为我的外部差异工具:[diff]external=git_diff_wrapper#!/bin/shvimdiff"$2""$5"假设我有300个文件已被修改;通过bash,我输入“gitdiff”。它依次启动300个vimdiff,我该如何中止它? 最佳答案 使用:cquit退出带有错误代码的vim。Git将检测到错误并停止打开新的vimdiff。你可能想在你的.vimrc中为它创建一个映射:if&diffmapQ:cquitendif然后只需按Q即可提前中止gitdiff运行。为了让它工作,你必须编辑你的git

git 创建以 ~? 结尾的文件

刚开始在我的mac上使用git。我的存储库中有一个名为README的文件。当我更改它时,git将另一个文件放在名为README~的目录中,其中包含以前的版本。是git做的吗?为什么git这样做?如何阻止git这样做?(不要只是想将它添加到.gitignore,但我想我可以这样做,但我更愿意理解为什么我首先要获取这些文件..)(很难在Google上搜索答案,因为尝试搜索“~”) 最佳答案 文件名上的波浪号后缀通常由编辑器(Emacs,某些模式/版本中的Vim)在您编辑的文件的备份副本上使用。有一次在Mac上,Vim似乎为我创建了备份;

git 创建以 ~? 结尾的文件

刚开始在我的mac上使用git。我的存储库中有一个名为README的文件。当我更改它时,git将另一个文件放在名为README~的目录中,其中包含以前的版本。是git做的吗?为什么git这样做?如何阻止git这样做?(不要只是想将它添加到.gitignore,但我想我可以这样做,但我更愿意理解为什么我首先要获取这些文件..)(很难在Google上搜索答案,因为尝试搜索“~”) 最佳答案 文件名上的波浪号后缀通常由编辑器(Emacs,某些模式/版本中的Vim)在您编辑的文件的备份副本上使用。有一次在Mac上,Vim似乎为我创建了备份;

git - 如何使用 fugitive 提交当前显示在 Vim 中的文件?

我正在编辑分成三个窗口打开的文件。我想将它们提交到存储库中。有什么命令可以做到这一点吗? 最佳答案 有几种方法可以完成此任务。我将概述使用:Git的最具交互性的方法.通过:Git打开状态窗口通过在文件之间移动/通过-暂存/未暂存文件通过cc开始提交在状态窗口中创建提交消息并保存并关闭窗口。(我更喜欢:x)您也可以使用zj和zk在部分之间移动使用-在一个部分将暂存/取消暂存该部分中的所有文件有关:Git的更多帮助见:h:Git或:G当在:Git缓冲区。可以使用:Gwrite或:Gw和:windo跳过:Git窗口以使其更快一些。:win

git - 如何使用 fugitive 提交当前显示在 Vim 中的文件?

我正在编辑分成三个窗口打开的文件。我想将它们提交到存储库中。有什么命令可以做到这一点吗? 最佳答案 有几种方法可以完成此任务。我将概述使用:Git的最具交互性的方法.通过:Git打开状态窗口通过在文件之间移动/通过-暂存/未暂存文件通过cc开始提交在状态窗口中创建提交消息并保存并关闭窗口。(我更喜欢:x)您也可以使用zj和zk在部分之间移动使用-在一个部分将暂存/取消暂存该部分中的所有文件有关:Git的更多帮助见:h:Git或:G当在:Git缓冲区。可以使用:Gwrite或:Gw和:windo跳过:Git窗口以使其更快一些。:win

Git:恢复失败提交的消息

时不时地,当我尽职尽责地制作一个nice,descriptivecommitmessage,我得到一个错误:".git/COMMIT_EDITMSG"81L,2108Cwrittenerror:Therewasaproblemwiththeeditor'vim'.Pleasesupplythemessageusingeither-mor-Foption.注意这通常在:wq之后。我检查了.git/COMMIT_EDITMSG文件,里面没有任何变化。git是否将此消息保存到另一个地方,以便我可以恢复它并再次尝试提交?人们是否有过这个问题的经验并且知道为什么它会发生在我身上?我在写入其他文件