Git の基礎。

作業をする上で覚えておきたい4つのスペース(空間)がある。

  • working tree (ワーキングツリー)
  • index (インデックス)
  • local repository (ローカルリポジトリ)
  • remote repository (リモートリポジトリ)

下にいくほど情報消失リスクが減り、頑健性が高まります。

また、復元も下のスペースのほうがしやすいです。

日本語

法律の原案作成から法律の公布まで に非常に似ている。

working tree

原案作成用スペース。

index

決定案作成用スペース。

local repository

成立・公布準備スペース。

remote repository

ローカル環境で発生する違い

remote repository 以外はすべてローカルにある。

意外と感覚では理解しているものの、単語化されたときにわからないことはよくあるので,可能なら覚えたほうがいい。

コマンドによる状態の変化

普段、無意識に実行しているコマンドを絡めて覚えよう。

ターミナルを利用しているなら

  • git status 実行して表示された赤が working tree
  • git status 実行して表示された緑が index
  • git log で出てくるのが local repository

working tree

git add

index

git commit

local repository

git push ...

(略)

コマンドによる影響

  • git checkout . … で簡単に消えてしまうのが working tree.
  • git stash . … で簡単に消えてしまうのが index.
  • git reset --hard HEAD … で簡単に消えてしまうのが local repository.
  • git push -f ... … で簡単に消えてしまうのが remote repository.

おわりに

細かくコミットしてリモートリポジトリに Push したほうがいいのは、データの消えやすさに起因する。 悩みまくってコミットせずにいるより、「考え中」とか「一時保存」 等コミットメッセージで保存したほうがいい。 消えたら終わりだからな。