読者です 読者をやめる 読者になる 読者になる

Furudateのブログ

プログラミングやネットワーク系の知識・技術がメインのブログ。技術メモ帳的な感じになるかと。岩手から発信していきます。

【Git】Windowsにmsysgitをインストール

こんにちは。

前の記事で、GUIベースのGitクライアントツールであるSourceTree for Windowsをインストールしました。

今回は、CUIベースのツールで、Windowsでも出来るmsysgitをインストールして、Gitの環境構築を行い、簡単にGitHubを使ってみたいと思います。
OSはWindows7のみでしか確認していません。

なお、今回は後輩に教えるという面も含んでいるので、かなり細かめにやりたいと思います。

ただし、ステージングとコミットとプッシュの意味は前の記事に書きましたので、もしわからない場合はこっちを先に見て下さい。

msysgitのインストール

まずはツールのインストールからです。
こちらから、最新のものをダウンロードしてきます。
この時点では「Git-1.8.4-preview20130916.exe」というものが最新でしたので、これをダウンロードします。
※なお、下の方に「msysGit-fullinstall-1.8.4-preview20130916.exe」のようなものもありますが、これは msysgit 自体をビルドしたい人向けのものなので間違えないようにしてください。

次にダウンロードしたものをダブルクリックで開き、インストールウィザードを表示させます。
ウィザードについては以下のようにします。

Select Components

  • Additional icons

クイックランチやデスクトップにショートカットを追加するかどうか。今回は邪魔なので全部OFFにします。

  • Windows Explorer integration

コンテキストメニュー(右クリックのメニュー)についてです。Advanced context menu にするとシェルを用いたメニューになるっぽいですが、あまりGUIではやらないので、ここでは Simple context menu にします。

  • Associate .git *~、Associate .sh~

この二つは関連付けです。いらないのでOFFにします。

  • Use a TrueType font ~

ONにすると文字化けするっぽいのでOFFにします。

Select Start Menu Folder

スタートメニューにショートカットを追加するかどうか。ここではそのままにして次にいきます。

Adjusting your PATH environment

PATH環境変数の設定です。これを設定すると、WindowsのコマンドプロンプトでもGitが使えるようになります。

PATHを設定しないで、Git BashのみでGitコマンドを使う。

  • Run Git from the Windows Command Prompt

git/gitk コマンドだけPATHに追加します。

  • Run Git and included Unix tools from the Windows Command Prompt

git/gitk に加え、msysのコマンドも追加されます。ただし、既存のコマンドと被るものがあるそうです。

よく分からない場合は2番目を、環境変数を自分で設定する場合は1番目を選ぶと良いでしょう。
3番目はあまり使わないように思います。
今回は基本的に Git Bash で作業をしますが、一応コマンドプロンプトで出来るようにしておくため、2番目にしておきます。

Configuring the line ending conversions

改行文字の変換設定です。あとで設定を変更出来ます。

  • Checkout Windows-style, commit Unix-style line endings

Windowsのみのプロジェクトならこれ。
テキストファイルを LF->CRLF にしてくれます。
あとでこれに変更するときは core.autocrlf=true にすればOK。

  • Checkout as-is, commit Unix-style line endings

クロスプラットフォームの場合(WindowsとLinuxで行う場合)はこれ。
テキストファイルを CRLF->LF にしてくれます。
あとでこれに変更するときは core.autocrlf=input にすればOK。

  • Checkout as-is, commit as-is

特に改行コードを気にしない場合はこれ。
クロスプラットフォームでは推奨しないらしい。
あとでこれに変更するときは、core.autocrlf=false にすればOK。

今回は2番目にしておきます。


これでインストールは終了です。次から色々と設定をしていきます。

ちなみに、Git Bash でコピペをするときは、タイトルバーのところを右クリックすることにより出来ます。(ショートカットキーほしいな・・・)
コピペするときはこの方法で行ってください。

環境変数PATHの設定

PATHの設定で、Use Git Bash only を選んだ人はここの設定が必要です。
マイコンピュータのプロパティを開き、以下のように設定します。

  • C:\Program Files (x86)\Git\cmd

git と gitk コマンド

  • C:\Program Files (x86)\Git\bin

その他の msys のコマンド
Gitディレクトリまでのパスは、自分のインストール環境に合わせて適宜変更してください。

Bashの初期化ファイル .bashrc を作成

bashrcを作っていきます。これを作ることでUTF-8の設定とかエイリアスの設定とかできます。
今回は以下のように設定します。
なお、以下の作業からはGit Bash上で行って下さい。

export PS1='\u[\w]\$ '
export TERM=msys

alias ls='ls -F --color=auto --show-control-chars'
alias la='ls -a'
alias ll='ls -l'
alias sakura='D:\\software\\sakura\\sakura.exe'

まず1行目でBashの設定をしています。ユーザ名と今いる場所を表示するようにしています。
2行目はこれを書かないとエラーがでるっぽいので書いておきます。おまじないです。
aliasのところは、エイリアスの指定です。
lsでファイルタイプの記号を表示するようにし、かつ色分けと文字コードを設定しています。
また、sakuraでサクラエディタが開くようにしています。ここは書かなくてもOKです。

ちなみにbashから日本語入力と日本語表示は出来ないみたいです。日本語のファイル名を見たい場合はエクスプローラーを使いましょう。

Gitの設定

git config コマンドでgitの設定をします。
下のコマンドを打っていってください。
細かい内容については、今は意味がわからなくてもOKです。

git config --global user.email "hoge@example.com"
git config --global user.name "hogehoge"
git config --global core.editor "'D:\software\sakura\sakura.exe' -CODE=4"
git config --global core.quotepath false
git config --global color.branch always
git config --global color.diff always
git config --global color.interactive always
git config --global color.status always

user.email, user.name でコミットに記録されるメールアドレスと名前を指定します。
core.editor でコミット時に開かれるエディタを指定します。ここではサクラエディタにしています。
core.quotepath で日本語の文字化け対策をします。
color.* は git diff や git log の表示に色付けをするようにしています。

以上で設定は終わりです。
今回は全てグローバルにすることにより、全てのプロジェクトに適用するようにしています。

ちなみに設定を確認するときは、

git config --global -l

で確認できます。

現在のプロジェクトの設定を確認するときは、

git config -l

で確認します。

GitHubを使う

さて、設定が終わったところでいよいよGitHubを使っていきます。
アカウントは作っておいてくださいね。

公開鍵の登録

まずはSourceTree でもやったように公開鍵の登録をします。
ちなみに複数登録できるので、前のがある場合は追加してください。
また、秘密鍵は今回使う必要がありません。

以下のコマンドを実行して公開鍵を生成します。

ssh-keygen

SSH鍵がローカルの$HOME/.ssh/に作成されます。
上書きの警告が出たら、前のをリネームするなりして対応してください。
また、$HOMEの確認は

echo $HOME

で出来ます。

鍵を生成したら、GitHubのアカウント設定のページから、SSH Keys にいき、ADD SSH key から下記の項目を入力し、鍵の登録をします。

  • Title

鍵の登録名。複数登録したとき区別できるように。今回は「msysgit public key」とします。

  • Key

生成した.ssh/にある鍵ファイルのうち、id_rsa.pub をエディタで開き、コピペします。
消したり追加したりしないでください。特に改行には気をつけて下さい。

これで鍵の登録は完了です。
これが終われば、GitHubと連携することが出来ます。

リポジトリの作成

さて、次にリポジトリの作成を行い、そこにファイルをプッシュしていきます。
基本的に前のエントリーの「ステージングからプッシュまで」のところの内容とほぼ同じです。

まずはリポジトリを作成します。
GitHubの右上にある create new repo のボタンから作成します。

f:id:Furu222:20131030193543j:plain


f:id:Furu222:20131030193555j:plain

作成を終えると、この画面が出て来ると思います。
基本的に画面にあるコマンドを打つと、プッシュまで出来ると思います。

f:id:Furu222:20131030193638j:plain

リポジトリにプッシュするまでの簡単な流れ

まずはローカルディレクトリで、Gitの初期準備をします。
Git BashでGit管理したいディレクトリまで移動し、以下のコマンドを入力します。

git init

ls -a(la) コマンドで見てみると、.git という隠しディレクトリが作成されていることが分かります。これで、このディレクトリでGitを扱う準備が出来ました。

次にファイルを追加します。
readme.txt というファイルをエディタやメモ帳で作成し、今いるディレクトリの中に保存します。
このファイルをステージングしてコミットしたいと思います。

git add "readme.txt"
git commit -m "first commit"

commitに -m オプションをつけることで、ターミナルからコミットメッセージを入力出来ます。
自分が指定したエディタ(core.editorで指定したエディタなので、この記事通りにやるとサクラエディタになります。)でやりたい場合は、git commit だけでOKです。

次にリモートリポジトリの追加を行います(GitHub上のどのリポジトリを対象とするか)

git remote add origin "URL"

originというのはURLをいちいち打たなくてもいいように名前をつけたものです。
originじゃなくても良いですが、大体originで。
URLというのは、GitHub上のレポジトリに書いてある「git@github.com:Furu222/sample.git」のようなものです。注意してほしいのは、HTTPではなく、SSHのほうのURLで。

最後にプッシュします。

git push origin master

これでGitHub上で先ほどのレポジトリを見てみると、readme.txtがアップされていることが分かります。


以上がプッシュまでの簡単な流れになります。
これでGitの基本的な部分は出来ました。

msysgitはCUIベースでやりたいときは非常に良いと思います。
自分はSourceTreeでもCUIベースでやっていたので、しばらくはこっちを使いたいと思います。
ただ、日本語をターミナル上で扱えないのは若干不便ですね...

今回は長くなってしまいましたが、以上になります。
それでは。