Top/EBUG勉強会/20160227_Gitの話

Gitの話

EBUG 第56回会合
2016年 2月27日、ながおか市民センター
川俣吉広、kaw@on.rim.or.jp

VCSの特徴

歴代のVCS(Version Control System: バージョン管理システム)の特徴

名称環境管理単位リポジトリ
RCSスタンドアロン単一のファイル単一のファイルをlock/unlock
CVS
Subversion
ネットワークファイルツリーネット上で単一のリポジトリを共有
Git複数のリポジトリがネット上に共存

部構造

Gitではコミットする度にリポジトリ内部にひとまとまりのデータ構造が作成される。

GitCommit.png

これらはそれぞれのコマンドを実行することによってコミットオブジェクトがどのように変化するかを比較してみると、それぞれのコマンドの意味が理解しやすい(と思う)。

分散リポジトリ

DVCS.png

Gitでは複数のリポジトリを設置し、リポジトリ間でコミットを送受信することができる。
Gitの仕組み的には、全てのリポジトリは対等。

通常は、基点となるリポジトリを設け、そのリポジトリから複製した別のリポジトリ上で作業を行い、その作業結果を基点となるリポジトリに集約する「中央リポジトリ方式」がよく使われる。

複製(クローン)したリポジトリ内には、複製元のリポジトリの状態を記録するための特殊なブランチが存在し、これを「追跡ブランチ」と呼ぶ。

リモートリポジトリを操作するには、

を明確に区別して指定する必要がある。このための記法をrefspec (参照仕様)と呼ぶ。
参照仕様の理解もGitを使う上でのポイントの一つ(と思う)。

#img(): File not found:

おすすめドキュメント

ネット上、書籍共に数多くありますが…。

ツールとか

開発フロー

作業用ブランチ(トピックブランチ)の作成やマージといった作業フローの運用については、様々な議論があるようだ。
例えば、

など。

雑感

…どんどん富豪的に [bigsmile]

今回Git習得の過程でこのことを実感した。
Gitは優れてデータ構造主導のソフトウェアである。初期のGitはCで記述された少数のコマンドとシェルスクリプトとで構成されていたというのも頷ける話である。


Top/EBUG勉強会/20160227_Gitの話

Front page   New Page list Search Recent changes   Help   RSS of recent changes