Gitの使い方:設定編


Gitには様々な用語が存在する、しかも「リポジトリ=ローカルリポジトリ=リモートリポジトリ」だったり、「インデックス=ステージ」だったりややこしい用語もかなりある、今回はとりあえずmsysgit(Git for Windows)の最初の設定についてのメモ。

環境変数のHOMEを指定する

グローバル設定の.gitconfigファイルや、SSHの設定が格納される.sshディレクトリなどは環境変数HOMEを参照して作成される。もし環境変数HOMEが存在しない場合それはC:\Users\$Userになる。この環境変数HOMEを変更するには「システムのプロパティ - 環境変数 - ユーザ環境変数」から「新規」で追加し特定のディレクトリを参照させる事は出来るのだが、環境変数HOMEはmsysgitだけでは無く、他のプログラムでも使用する可能性がある事に注意する。

Git Bashの設定

起動時の作業ディレクトリの指定

デフォルトだと%HOMEDRIVE%%HOMEPATH%を参照する。作業ディレクトリはデスクトップだとか、XAMPP内の特定ディレクトリとかの場合はGit Bashのショートカットアイコンのプロパティから作業フォルダーの内容を書き換えてやれば良い。

日本語文字化けを解消する

regeditから HKEY_CURRENT_USER/Console/Git Bash - FaceName を選択し、「Lucida Console」から「*MS ゴシック」に書き換え。

.bashrcファイルの作成

HOMEディレクトリに.bashrcファイルを作成しておく。
→ls カレントディレクトリ内のファイルやディレクトリの情報を表示する
lsで日本語が文字化け(???的な)する場合は、.bashrcに以下を入力する。
alias ls='ls --show-control-chars'

.bashrcではエイリアスの設定をする事も可能、例えばgit log を短縮する場合以下の様に.bashrcに記述する訳だが.bashrcって他のbashでも使われ...スルー推薦
alias log='git log'

Git Bashで覚える必要のあるコマンド

lsカレントディレクトリ内のファイルやディレクトリの情報を表示(-a{全て} -l{詳細})
cd <dirName>指定したディレクトリに移動(../で上に戻る)
start . カレンドディレクトリをエクスプローラーで開く
mkdir <dirName>指定したディレクトリを作成

Git GUIの設定

の前に一度Git Bashから以下の編集者情報の挿入を行ってみる
git config --global user.name "NAME"
git config --global user.email "MAIL@XXX.XX"
すると、HOMEディレクトリに.gitconfigファイルが作成され、上記の内容が記入される。
次にGit GUIのオプションを開くと、.gitconfigが読み取られ設定が反映される。
.gitconfigの編集方法は以下の3通り
┣ Git Bash
┣ Git GUIのオプション(一部)
┗ エディタで直接編集
また、Gitの設定には/etc/gitconfig、~/.gitconfig、.git/configの3つの対象ファイルがあるが、基本的には--globalが指す~/.gitconfigの編集で問題ないと思われる。

Git GUIの日本語文字化けを解消する

Git Bash上、もしくは直接編集で下記を入力。
git config --global gui.encoding utf-8

.gitconfigの設定

色を設定する

git config --global color.ui auto

エイリアスを設定する

// git co で Commitする
git config --global alias.co 'commit'
// git l でlogを出力する
git config --global alias.l 'log'

エディタを指定する(下記はSublime Text 2の場合)

[core]
editor = 'C:/Program Files/Sublime Text 2/sublime_text.exe'

git pushの挙動

// 追跡関係がある場合のみカレントブランチをpush
git config --global push.default upstream
// カレント=リモートと同名である場合のみpush
git config --global push.default simple
Related Posts Plugin for WordPress, Blogger...