当在git-bash中执行$ git commit时的行为

这是什么?

前提是在Windows环境下,以下是关于输入“$ git commit”而不包含“-m”选项的操作的说明。

首先,结论是

为了输入提交信息,git会调用程序员常用的编辑器vim。如果不想让提交操作意外地提交,可以立即输入”:q!”来结束vim,这样就不会提交。如果没有提交信息,则会被视为取消操作。

把下面的内容用汉语进行总结:

之前在Git Bash教给你的提交命令是这样的。

$ git commit -m "コミットメッセージ"

这是一个命令,使用-m选项将后面写的文本作为提交日志的消息来进行提交。
这是使用-m选项的情况下的命令,原始命令就是这个。

$ git commit

这是一个执行提交操作的命令。

如果忘记了 m 会发生什么?

如果忘记添加”-m”选项……也就是说,只输入”$ git commit”并执行命令时,git会调用编辑器用于编辑提交消息。
编辑器可以通过以下方式指定。

$ git config --global core.editor "使うエディタのパス"

然而,我认为这个设置对于包含空间的弱点和普遍的不多做很少事情,如果使用git-bash,则我认为使用vim就足够了,所以我假设没有给出具体指示来进行讨论。

实际上叫什么?

正如我在结论中所写的,总之,当执行”git commit”时,git会调用vim作为提交消息的编辑器。

vim是一款文本编辑器

这是一个适用于程序员的编辑器,尽管也有图形界面版本,但它主要在命令行上运行。我在工作中经常使用它,作为个人编辑器时,我也更喜欢用Windows版本的gvim(vim的图形界面版)。在Windows上准备CLI的vim环境很麻烦。它的特点是可以切换编辑模式和输入模式,这样可以在基本不移动手在键盘的主位的情况下完成操作。

换句话说,在这个编辑器中,甚至连鼠标都不需要去触碰,更不用说十字键了,操作起来完全不一样……。

Vim的基本操作

从这里开始,这是关于当在git-bash中实际执行$ git commit时启动vim的基本操作方法的备忘录。
我们将分别介绍编辑模式和输入模式。请注意,这只是基本操作方法,如果想了解其他操作方法,请参阅下面的备忘单:
http://vim.rtorr.com/lang/ja/

編集モード※:Ctrl+のついてないコマンドは入力モード切り替えを除いて数字を前に置くとその数字分処理するi入力モードに切り替えh j k l左から ← ↓ ↑ → に対応。あ、ちゃんと十字キーでもカーソル動かせるから安心してくださいuアンドゥ。やらかした時はこれで戻せる。つまり他のエディタでいうCtrl+zCtrl+rリドゥ。つまりやり直し操作。他のエディタとかだとCtrl+yとかに割り当てられてるアレ。xカーソル上、または選択範囲の文字の削除。実は内部的には切り取り処理だったりするので後述する貼付け操作で貼り付けられる。dd行の削除。djとかdkとかやると一行下の行や一行上の行も巻き込む。削除とはいうが切り取り処理なのでpで貼れる。v選択モードに変更。マウスドラッグのように選択範囲を選ぶモードになる。Escキーで抜けられるV行選択モードに変更。こちらは選択範囲が行単位になる。Ctrl+v矩形選択モードに変更。選択範囲が矩形で取れる。地味に役に立つ。y選択した範囲のコピー。実は「ヤンク」と呼ぶらしい。が、コピーと覚えても問題無いだろう。p貼付け。コピーした内容を貼り付ける:w保存。オプション無しでは上書き保存の挙動。普通のエディタで言うCtrl+S:q終了。保存してない時は怒られる。が、保存したくない場合は:q!で強制的にファイル編集を終了できる:wq保存して終了。やってることは:w:qを順番にやっているだけ
入力モード
EscまたはCtrl+[選択モードへ変更

结尾

最初我们在团队内使用SourceTree,不只是工程师,还包括其他成员。有一次发现某个成员的SourceTree无法运行,为了解决这个问题我们决定使用git-bash。当时我教了他git commit -m “提交信息”的写法。虽然使用了git-bash,但是当在Windows上忘记输入-m会发生什么,我还是实际测试了一下。结果发现打开了vim,然后我就措手不及了,因为我觉得”怎么搞的,我不会操作啊!而且Ctrl+C也无法关闭!”。所以为了避免陷入这种糟糕的情况,我写了这个备忘录。(需要注意的是要意识到vim打开的是一个编辑器)

补充记录

2020/06/15
如果你注意到了,Git for Windows现在已经支持VSCode的提交信息了。

广告
将在 10 秒后关闭
bannerAds