いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Windowsでgitのエディタをgvimに設定するメモ (Git, GitHub for Windows, core.editor, rebase, fixup)

エディタを設定するメモなのですが、前半部分は単なる感想になってます.


つい先日、やっとこさgit使い始めました。
とりあえず、GitHubにアカウントつくって現在勉強中です。
前は、Subversion野郎だったので、結構違いに戸惑っていたり・・・w
まだまだ、よちよち歩き状態です。


とりあえず、GitHubで公開されているGitHub for Windows入れて
いろいろやってみてるんですが、gitを使いだすとコミットの回数が爆増!
なんか、以前の10倍くらいコミットしてるような気がします。
コミット速度が速いせいもあるのかな。すごく気軽にコミットできますね。


って感じでコミットしていくと、なんかコミットログがすごくたまって、かつ、なんかごちゃごちゃしてきました・・・。
使いこなしてらっしゃる方々の情報を見ると、どうもコミットのログをまとめられるとのこと。
git rebaseとかいうのを使うとのこと。


んで、やってみました。GitHub for Windowsの「tools」からshell (PowerShell) を起動して以下を実行。

git rebase -i HEAD~4

コマンドを実行したら、いつも使ってるエディタ (emeditor) が起動してきました。
んで、いくつかのコミットをfixupとかに設定して保存・・・・ってしても、うまく動かない・・・・。
他の方の実行例をみると、「Successfully .....」とかなるみたいですが、全然ならない。
あばばばばb。元に戻す方法もよくわからず、とりあえずgit rebase --abort連打。


どうも、以下のことができるエディタでないと駄目みたいですね。

  • UTF-8が利用できる
  • Unixスタイルの改行コード (LF) が扱える


秀丸の場合は、以下のように設定するみたい。

git config --global core.editor "'/path/to/hidemaru/hidemaru.exe' //fu8"

EmEditorも条件は満たしているはずなんですが、なぜか出来ない。
(正確には、コミットログ編集用のファイルは開くのですが、保存して閉じても無視される。)

git config --global core.editor "'/path/to/emeditor/emeditor.exe' //cp 65001 //cps 65001 //slf //ss-"

んで、ネットで調べてみるとvimの情報はたくさん見つかりました。
みんな、vimを使っているんですかね?
で、最終的に以下のようにしたら、うまくいきました。

git config --global core.editor "'/path/to/vim/gvim.exe' -f -c 'set fenc=utf-8'"


これでうまくいったみたいなのですが、でもたまにrebase時とかに文字化けしたりします。
そうなると、うまくいかない。うーん、難しい・・・。


最終的に、GitHub上でissue発行して、コミットするときにそのissueに紐づけ。
そのタスク以外で、修正したものとかは適当なコミットメッセージつけておいて、後でrebaseって
やるのが、今のところ一番しっくりきてます。もっときっちりgit知らないと駄目ですね。



追記:
EmEditorの件ですが、以下のように設定するとコミットログはうまく編集できました。

git config core.editor "'/path/to/emeditor.exe' //cp 65001"

でも、git rebase -iしたときにファイルの保存ダイアログが出てしまい、うまくいかず・・・。
うーん・・・。


================================
過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。