はじめに
本記事は、Git コマンドの仕組みを理解せず使っている Git 初心者向けの記事です。
本記事の内容は、株式会社サイバーエージェント 主催の Frontrend 勉強会での「いつやるの? Git 入門」の要約です。
勉強会で使用されていた資料は こちら より参照できます。
Git の内部構造
Git で大事なデータ領域は下記の 3 つです。
-
作業ディレクトリ
Git ディレクトリ以外の、ユーザが編集するファイル / ディレクトリのこと -
ステージングエリア ( インデックス )
作業ディレクトリの変更点を登録する一時領域のこと -
Git ディレクトリ
.git ディレクトリのこと
Git コマンドは上記 3 つのデータ領域間のファイル操作のことです...と言われても分かりにくいと思いますので、具体例で説明します。
具体例
$ mkdir example && cd example
$ git init
上記コマンドを実行すると、example ディレクトリに .git ディレクトリができると思います。この .git ディレクトリが Git ディレクトリ、その他ディレクトリが作業ディレクトリにあたります。
$ touch hoge.txt
$ git add -A
上記コマンドを実行すると、作業ディレクトリの変更点 ( hoge.txt の作成 ) がステージングエリアに登録されます。つまり add コマンドは、 作業ディレクトリとステージングエリア間のファイル操作を行うコマンド ということです。
$ git commit -m <commit message>
上記コマンドを実行すると、ステージングエリアに登録された変更内容が .git ディレクトリに反映されます。つまり commit コマンドは、 ステージングエリアと .git ディレクトリ間のファイル操作を行うコマンド ということです。
mv / reset / rebase などの他のコマンドがどの領域間のファイル操作を行うかは、Git Cheatsheet より確認できます。
ブランチとは
ブランチとはメインとは別の流れで作業を続ける機能のことです。Subversion とは異なり、 Git には trunk が無く全てがブランチである ため、現在作業中のブランチがどこなのか ( つまり HEAD の位置 ) を知っておく必要があります。
ブランチのコンセプトの理解を深めたい方は、Learn Git Branching を参考にしてください。
参考 URL