2009-05-04
sh: git-receive-pack: command not found
「git push ...」を実行したら、以下のエラーとなりました。
sh: git-receive-pack: command not found fatal: The remote end hung up unexpectedly
msysgitのインストール先のbinフォルダを覗いてみると、確かに「git-receive-pack.exe」がありません。どうやら、ポータブル版msysgit(PortableGit-1.6.2.2-preview20090408.exe)はパッケージングに失敗しているようです。
とりあえず、msysgitインストール先のbinフォルダにある「git.exe」を「git-receive-pack.exe」という名前でコピーするとエラーなく動作するようです。
ポータブル版msysgitの日本語対応
msysgitは、そのままでは日本語にうまく対応できません。これは、表示やテキストの編集に使われるコマンド(lessコマンド、vimコマンドなど)が日本語に対応していないからです。よって、日本語を正しく扱うためには、これらのコマンドを日本語対応のものに置き換える必要があります。
Windows環境でGitを利用する際、問題になるのが日本語などマルチバイト文字の扱いだ。Windows環境では通常、日本語の文字コードとしてShift JIS(CP932)が利用されている。いっぽう、Gitではマルチバイト文字の文字コードとしてUTF-8を利用することが推奨されているようだ。また、ファイル名に関してもWindows環境ではCP932が、Mac OS Xを含むUNIX/LinuxではUTF-8(もしくはEUC-JP)が採用されていることが多いため、たとえば日本語のファイル名を持つファイルを Windows環境でコミットした場合、UNIX環境ではファイル名が文字化けしてしまう。
現状ファイル名については、日本語を使わないという解決策しかない。
WindowsでのGit環境構築とその注意点 - SourceForge.JP Magazine : オープンソースの話題満載
上記サイトで紹介されている日本語対応方法を参考に、私の環境で実施した手順をまとめておきます。
準備
日本語対応に必要なコマンドをダウンロードします。
- lessコマンド
- この日記を書いている時点での最新 - less429w.zip
- Windows版nkf
- この日記を書いている時点での最新 - nkfwin.zip
- 日本語対応vim
- 私の場合は、香り屋版vimを使っています。
- この日記を書いている時点での最新 - vim72-20090321-kaoriya-w32j.exe
インストール
lessとnkfは、それぞれless.exe、nkf.exeをmsysgitインストール先のbinフォルダに展開します。lessはすでに存在するため、上書きします。
香り屋版vimは、msysgitとは別に単独で利用できるため、msysgitとは別のフォルダに展開します。私の場合は、E:\PortableApps\vim72-kaoriya-w32jに展開しました。
環境設定
git専用コマンドプロンプト起動バッチファイルの作成
git作業に特化したコマンドプロンプトを起動するためのバッチファイルを以下の内容で作成します。
@echo off @set PATH=%~d0\PortableApps\Git\bin;%~d0\PortableApps\vim72-kaoriya-w32j;%PATH% @set HOME=%~d0\home\aki-s cd %HOME% start bash --login -i
PATH環境変数やHOME環境変数に設定している内容は、ご自分の環境に合わせて適切に変更してください。「%~d0」は、お使いのUSBメモリやUSB HDDのドライブレターに置き換わるため、変更しないでください。
inputrcの作成
msysgitインストール先のetcフォルダに、inputrcというファイルを以下の内容で作成します。
set convert-meta off set meta-flag on set output-meta on set kanji-code utf-8
profileにGIT_EDITORとGIT_PAGER環境変数を追加
inputrcファイルを作成したetcフォルダにあるprofileファイルに以下の内容を追加します。
export GIT_EDITOR=gvim export GIT_PAGER="nkf -s | less"
使い方
環境設定で作成した「git専用コマンドプロンプト起動バッチファイル」を実行して、コマンドプロンプトを開いてください。gitコマンドでの作業は、すべてこのコマンドプロンプト上で行ってください。
なお、コミット時のメッセージは、コマンドライン上で入力するのではなく、エディタを使って文字コードUTF-8で入力するようにしてください。参考までに、vimでUTF-8を扱う際の_vimrcの設定を紹介しておきます。
"--------------------------------------------------------------------------- " 日本語に関する設定: set enc=utf-8 " 表示用の文字コード set fenc=utf-8 " 保存時の文字コード set fencs=ucs_bom,utf-8,ios-2022-jp,euc-jp,cp932,utf-16,utf-16le " 文字コード自動判別候補


