Git
(主にテキストファイル向けの)バージョン管理システム。自分の理解を書いておくと、
ファイルの変更履歴の差分自体を記録するのではなく、check inした時点でのファイルの内容?をハッシュ化して管理する。
indexing, staging段階でハッシュ化して、それをcommit時に取りまとめて格納する
1回の変更記録(どのファイルか、messageなどのメタ情報)のまとまりの情報もハッシュ化する。コミット
このコミットの情報の履歴(親のコミットはどれか?)を記録することで、木構造として管理できる。 データの保管庫は、ローカルとリモートを想定してるのが特徴。
.git/object にある、blob -> file, tree -> directory, commit -> commitファイルを意識する
commitオブジェクトは、親コミットの参照があり、これでrootまで辿れる。
$ git cat-file -p <object>
#git_cat-file これで、中身がわかる。fileならその中身そのもの、treeならそのdirectoryのファイル情報, commitならcommit情報 version up @201910
sudo add-apt-repository ppa:git-core/ppa
git switch XXX ok.
用語に慣れる
git --paginate help -a