git とは

2011年6月12日日曜日

git プログラム

t f B! P L
gitというのは、分散ソース管理システムの一種。

中身は何かと言うと、ファイルシステムと考えると分かりやすい。内部には以下の情報を持つ。

  • ファイルの中身を、バージョン間の差はとらず、個別のデータとして詰め込んだデータベース
  • あるバージョンのスナップショット情報(あるバージョンで、あるディレクトリに存在したファイルは、データベース中のどのデータかという情報)
  • バージョンの流れ、コミット時のコメント、ブランチなどの管理情報

ユーザがgitを使うと、gitコマンドは内部のデータベースと、展開中のファイルを使って、差分はこれだよとか、変更したファイル一覧はこれですとか、表示してくれる。

ファイルが個別に保存されているので、古いバージョンを取り出すときにはその間でdiffを取るだけ。従来問題だった、差分を再帰的に当てた上でdiffを取るといった面倒な処理は必要ないので、非常に高速にバージョン間の比較が行える。

また、分散ソース管理では、gitそのものが単純な仕組みのため、基本的に以下の情報をやりとりするだけで実現できる。

  • データベース間で追加されたファイル
  • 追加されたスナップショット情報
  • 追加された管理情報
扱うデータが、他のデータに依存しないため、非常に単純だ。

gitは、こういう単純な仕組みの上に、強力なmergeエンジンや、rebase処理を実装することで、スマートで力強い、かつ非常に高速なバージョン管理システムになっている。俺は、gitで、初めてLinusさんを尊敬した。

ラベル

AndroidTV (1) chromebook (2) DIY (4) docker (1) git (4) Ingress (4) llvm (3) MacBook (1) MVNO (1) narou (1) PS4 (2) QNAPNAS (9) SIMD (9) SmartBand (8) Ubuntu (9) VAIO (1) Windows (2) wsl (2) wsl2 (1) Xperia (20) トルネ (3) プログラム (26) ルーター (18) 音楽 (6) 家事 (2) 自炊 (2) 電子書籍 (2) 洋食 (4)

フォロワー

QooQ