Happy My Life

日常とか技術とか

msysgitインストール 〜 sshでのgitリポジトリアクセスまで

Windows7でgitが使えるように設定したので、忘れないうちに設定した内容を一通りメモしておく。設定したのはgit bashのみのハードな環境。Git GUITortoise Gitは設定しない。

msysgitダウンロード、インストール

msysgit - Project Hosting on Google Codeからダウンロードする。

ダウンロードファイルが

  • Git-x.x.x.x.exe
  • PortagleGit-x.x.7z
  • msysGit-fullinstall-x.x.exe
  • msysGit-netinstall-x.x.exe

といくつかあるのだが、通常はGit-x.x.x.x.exeをダウンロードした。そしてインストール。今回はGit bash(ターミナルからgitを利用)のみを設定した。

Tortoise Gitの利用まで考えるとインストール先は下手に設定しない方がよい(Tortoise GitにはmsysGitが必須で、msysGitのデフォルトパスがあらかじめTortoise Gitに設定されているから。何も設定しなくてもTortoise Gitが利用できる)

msysgitを日本語の対応する

このままでは

  • git commitのコメントで日本語入力できない
  • git logで日本語表示されない

という問題が出てくるので、これらに対処。

git commitのコメントはTeraPadから入力する事に。そしてTeraPadをインストール

今回はUTF-8を漢字コードで使用するのでTeraPadのデフォルトの文字コードをUTF-8Nにしておいた(オプション→文字コードで変更) ひょっとしたら必要ないかもしれない。

日本語が表示にはlessnkfが必要なので、msysGitのbinフォルダ(c:Program FilesGitbin)へコピー(lessは上書きコピーになる)

次に日本語が扱えるように設定を変更。etcフォルダ(c:Program FilesGitetc)にあるinputrcの15行目付近を以下のように追加&変更

set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set kanji-code utf-8

次に、同じくetcフォルダ(c:Program FilesGitetc)にあるprofileに以下を追加

export GIT_EDITOR="'c:Program FilesTeraPadTeraPad.exe'"
export GIT_PAGER="nkf -s | less"

GIT_EDITORはお好みのエディタで。

これで日本語でコメント入力 & log表示ができるようになった。

hostsの編集

次にssh経由で海外にある自前のgitリポジトリにアクセスできるように設定する。 msysGitとは直接関係無いが、外部gitリポジトリIPアドレスを直接指定してアクセスするのは面倒なので、hostsファイルに外部サーバのアドレスを登録する。

その時はc:/Windows/system32/drivers/etc/hosts をエディタで編集するのだが、

  • 管理者権限を持っているユーザでログイン
  • 右クリックして「管理者として実行」でエディタを起動

の2つを行なわないとhostファイルが編集できないのを忘れてはいけない。hostファイルを開いた後は、以下のように追加する。

12.34.56.78     githost

これで「ping githost」でレスポンスが返ってくるようになる。いちいちIPアドレスを入れなくていいのは楽チン。

sshの設定

まずはssh接続に必要な鍵を生成する。このあたりはLinuxのそれの流儀と同じ。git Bashだとsshも予めインストールされている。

git Bashから

$ ssh-keygen -t rsa -C "example@gmail.com" 

と実行すると、 ~/.ssh/以下にid_rsa, id_rsa.pubが生成される。パスフレーズも要求されるが今回は設定してない。秘密鍵、公開鍵の扱いはLinuxでのssh接続と同じ扱いになる(このあたりは割愛) あ、ファイルのアクセス権限は設定不要だ。これはLinuxと違う。

次に、アクセスするsshサーバのポート番号を変更しているので、それも設定する。.ssh/configを開き(無ければ新規作成)

Host githost
HostName githost
Port 12345

と、ホスト毎にSSHのポート番号を指定する。

あとは、Linuxなどでgitを利用したのと同じ方法となる。これで使えるようになった。

足りないと思った箇所は後日にでも追加するつもり。