- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

git

はじめに Edit

git commitしようとして、エディタが立ち上がらずにエラーで落ちる場合。

実質的にここでは、Windows cygwin gitにて任意のエディタを設定する方法を紹介しています。

Windows cygwin gitでの解決方法(任意のテキストエディタの指定方法) Edit

想定環境 Edit

  • Windows XP SP3, cygwin 1.7(UTF-8環境), git 1.7.0.4
  • テキストエディタにGreenPad Unicode版を指定。あらかじめ入れておきます。
  • GreenPadは c:\software\GreenPad\GreenPad.exe のパスに配置したことに

解決方法 Edit

editorの設定で起動するエディタをgitに知らせておかなくてはなりません。

おもむろに以下の内容で適当な位置にshスクリプトを作ります。
私の場合は ~/bin/git_editor.shというファイル名で作りました。

#!/bin/sh

# Ebixio ≫ Git on Windows
# http://ebixio.com/blog/2009/10/09/git-on-windows/

# Author: Gabriel Burca
#
# Script arguments:
# file-to-edit

FILE=`cygpath -w "${1}"`
"c:/software/GreenPad/GreenPad.exe" -c65001 "$FILE"

※上記を記述する際の注意(cygwin使いの人には常識かもしれませんが):

  • エディタのパスは\を/に変えて下さい(cygwinに認識させるため)。
    この場合:c:\software\GreenPad\GreenPad.exe → "c:/software/GreenPad/GreenPad.exe"
  • 上記shスクリプトは改行コードをLFにして保存して下さい(Windows標準のCRLFじゃない)。そうしないとgitから呼ぶときにエラーが出ます。

あとはコマンドラインから

$ git config --global core.editor ~/bin/git_editor.sh

として、上で作ったスクリプトを指定すればOK。

もしくは環境変数GIT_EDITORを指定してもよいです。
以下をcygwinの~/.bashrc に記述してシェルを再起動して下さい(or Windowsのシステムの環境変数に同様の内容を追加する)

export GIT_EDITOR=~/bin/git_editor.sh

あとは、git commit 等のコマンドで入力待ちになり、指定したテキストエディタが起動するので、記述して保存し終了すればgitに反映されるかと思います。
(どこか変なところがあれば、エディタ終了後にgitがエラー吐くはず)

テキストエディタについて Edit

notepad.exeでもいいのかな?
UTF-8N対応のエディタを推奨。詳しくは、../gitで日本語を扱う方法を参照のこと。
GreenPadは、オプション引数に"-c65001"指定でUTF-8Nで起動します)

Windowsでcygwin環境でないなら Edit

msysgitとか使っている場合はcygwin(というかUnixの)パスの問題はないのかなあ?(msysgitは日本語環境で非推奨なため未確認)以下は案

  • 素直に、システムの設定で、GIT_EDITOR環境変数にエディタのパスを設定。
  • git.bat(git.cmd)みたいなラッパーを作って、GIT_EDITOR環境変数を設定してgitを起動するようにするとか?

例:
想定環境の場合、以下のような editor.batを作り、

c:\software\GreenPad\GreenPad.exe -c65001 %*

システムの設定でGIT_EDITOR環境変数にeditor.batのフルパスを指定します。
(editor.batをパスの通るところに置いてある場合は、フルパスでなくてeditor.batだけでもいいと思う)

※(気になって試したのですが)このbatファイルの"%*"のような引数指定の場合editor.batに渡されたファイルパスがスペース含む場合でも大丈夫のようです

日本語の問題 Edit

日本語コミットログ書くのに適したエディタはどうなのよ?
という問題は、../gitで日本語を扱う方法を参照。

参考リンク Edit


Show recent 10 comments. Go to the comment page.

  • EDITORでなくGIT_EDITOR環境変数があったのでそっちを設定するように編集しました。 -- TOBY 2008-08-28 (Thu) 06:55:25
  • cygwin gitにて、以前はテキストエディタのパスを直接指定していましたが、 git commitではそれでOKでしたが、git rebase -iではcygwinのパスがそのままわたされるため保存できずうまく使えないため、shスクリプト経由でテキストエディタを起動する方法に書き換えました。 -- TOBY 2010-05-12 (Wed) 15:52:19
  • cygwinを使わないコマンドライン用にeditor.batを追加 -- TOBY 2010-05-23 (Sun) 15:32:58
Name:

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2010-05-23 Sun 15:33:33 JST (2739d)