前置き
git を覚えたい(覚えないといけない)けどよくわからないとか、慣れてなくて今の状態が把握できなくなったりリポジトリ破壊したりしてしまうという人に。
覚えてほしいこと
箇条書きですいません。
- git はリモートリポジトリのデータをローカルに複製する
- リモートの内容がローカルの作業ディレクトリに直接取り込まれるのではなく、作業ディレクトリとは 別に リモートの複製を持っている
- また、例えば origin/master が指しているものはローカルに複製されたリモートリポジトリの master ブランチの内容であり、リモートリポジトリそのものではない。
- 意味をわからず
git pull
を使っていると、わかりづらいし事故りやすい
- 意味をわからず
- git のブランチは「枝分かれしているそれぞれの枝」のことを指すのではなく、特定のコミットを指す単なる「ポインタ」である
- HEAD は、現在作業中のローカルブランチへのポインタ
- コミットすると、HEAD が指しているブランチのみが進む
-
追跡ブランチという概念を覚える
- これをちゃんと覚えるまで
git pull
は使わない
- これをちゃんと覚えるまで
- 普段使っているコマンドの「本当の意味」「省略しない形」を理解しておく、機械的に覚えない
- 挙げていくときりが無いですが、例えば
-
git checkout -b branch_name origin/branch_name
とgit checkout branch_name
の違いと使い分けかたとか -
git push origin :branch_name
でなぜリモートブランチが削除されるのかとか
-
- 挙げていくときりが無いですが、例えば
この辺のことを理解すると、事故率が減るんじゃないかなと思います。
後書き
タイトルは、内容と関係ありそうでなさそうですけど、要するに他の VCS とは違うところがあるのだからその違いを意識しないとちゃんと使えませんよ、ということです。