$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

gitを使ってみたまとめ(2)

前回はgitの大まかなコマンドでした。今回は追加とコミットの詳細、変化のチェック、ファイル管理について。


1.変更の追加
git addコマンドがファイルをステージに追加するコマンドだ。次のような便利なコマンドがある。
$git add -i

iオプションをつけることで、変更の追加を対話形式で行うことが出来る。ステータスの表示、追加、削除、追跡されていないファイルの追加、などを行うことが出来る。またpatchが、特に便利な機能で、これを使うことであるファイル内のどの変更をステージに乗せるか決めることが出来る。patchは次のコマンドでショートカットできる。
$git add -p


2.コミット
コミットには
(1)addでステージさせたあと、コミットする
(2)-aオプションですべてコミットする
(3)ファイル名をそのまま指定して、コミットする
の三通りの方法がある。ちなみにaddでステージに乗せた後、そのファイルを編集した場合、後の追加はコミットに反映されない。


3.変化のチェック
 次のコマンドで現在の状態が確認できる。
$git status
Changes to be committedが変更点がコミットされていると言う意味。Changed but not updatedが変更点がコミットされていないという意味。

 また、変更点を確認するには以下のコマンド。

$git diff
$git diff --cached
$git diff HEAD
git diffはステージしていないファイルとステージ中のファイルの変更点を、--cachedオプションをつけるとステージ中のファイルとリポジトリのファイルとの変更点を、HEADをつけると作業ツリー上とリポジトリのすべての変更点を表示することが出来る。


4.ファイルの管理
 ファイル名の変更及びファイルの移動は次のコマンド。
$git mv (元のファイル名) (新しいファイル名)
mvはUnixコマンドの使い方と、ほぼ同じ。

 ファイルを無視するには.gitignoreというファイルにファイル名を追加する。.gitignoreはワイルドカードを使うことが出来る。また.gitignoreは単なるファイルのため、gitにより追跡される。このため、git cloneで作成されたリポジトリにも適用される。自分の環境だけに適用したいのであれば、.git/info/excludeにファイル名を書く。