最初は better SVN でよい・・・ そんなふうに考えていた時期が俺にもありました

  • 11
    Like
  • 0
    Comment

前置き

git を覚えたい(覚えないといけない)けどよくわからないとか、慣れてなくて今の状態が把握できなくなったりリポジトリ破壊したりしてしまうという人に。

覚えてほしいこと

箇条書きですいません。

  • git はリモートリポジトリのデータをローカルに複製する
    • リモートの内容がローカルの作業ディレクトリに直接取り込まれるのではなく、作業ディレクトリとは 別に リモートの複製を持っている
    • また、例えば origin/master が指しているものはローカルに複製されたリモートリポジトリの master ブランチの内容であり、リモートリポジトリそのものではない。
      • 意味をわからず git pull を使っていると、わかりづらいし事故りやすい
  • git のブランチは「枝分かれしているそれぞれの枝」のことを指すのではなく、特定のコミットを指す単なる「ポインタ」である
    • HEAD は、現在作業中のローカルブランチへのポインタ
    • コミットすると、HEAD が指しているブランチのみが進む
  • 追跡ブランチという概念を覚える
    • これをちゃんと覚えるまで git pull は使わない
  • 普段使っているコマンドの「本当の意味」「省略しない形」を理解しておく、機械的に覚えない
    • 挙げていくときりが無いですが、例えば
      • git checkout -b branch_name origin/branch_namegit checkout branch_name の違いと使い分けかたとか
      • git push origin :branch_name でなぜリモートブランチが削除されるのかとか

この辺のことを理解すると、事故率が減るんじゃないかなと思います。

後書き

タイトルは、内容と関係ありそうでなさそうですけど、要するに他の VCS とは違うところがあるのだからその違いを意識しないとちゃんと使えませんよ、ということです。