リポジトリと3つの空間
リポジトリを作るか複製し、ワーキングディレクトリ・ステージング・リポジトリという3つの空間を区別します。この区別ができないと、以降のコマンドが全部ややこしくなります。
学習目標
- 空のフォルダをリポジトリにできる
- 他人のリポジトリを自分の PC に複製できる
- 3つの空間の間でファイルがどう動くかを図で説明できる
リポジトリを手に入れる方法は2つです。自分のフォルダをリポジトリにする git init と、既存のリポジトリを丸ごと取ってくる git clone です。どちらも実行するとフォルダの中に .git という隠しディレクトリができます。このフォルダがリポジトリの本体で、すべての履歴と設定がここに入っています。これを消せば履歴は全部消え、これさえあれば他のファイルはいつでも復元できます。
GIT を使うときは、ファイルが3つの空間のどこにあるかを常に意識する必要があります。ワーキングディレクトリは今エディタで見ている実際のファイルです。ステージングエリア(index)は「今回のコミットに含めるもの」として選んでおく待合室です。リポジトリはコミットで確定し履歴に刻まれた場所です。ファイルは add でワーキングディレクトリからステージングへ、commit でステージングからリポジトリへ移ります。
ステージングという中間段階がある理由は、コミットを選んで詰めるためです。5つのファイルを直していても、そのうち関連する2つだけを選んで1つのコミットにできます。この力が後で履歴を読みやすくし、問題が起きたとき原因のコミットを素早く見つけさせてくれます。他のバージョン管理ツールにない GIT の強みです。
このステップで覚えるコマンド
目で読むだけでなく、実際にターミナルで打ってみてください。手が覚えて初めて実務で出てきます。
git init- 今のフォルダを新しいリポジトリにします。`.git` ができます。
git clone <URL>- リモートリポジトリを丸ごと複製します。履歴まで全部ついてきます。
git status- 3つの空間の現在の状態を見せます。詰まったら必ず最初にこれを打ちます。
ls -a- 隠しファイルまで表示します。`.git` が本当にできたか目で確かめましょう。