shop.oreilly.com
Repository Magagement
- リポジトリ集中型/分散型
- 開発モデルとは直交
- Gitを用いた開発モデルはあくまで分散型
- リポジトリ集中型でも、個々の開発者は手元にcloneして作業する = 分散型開発モデル
A Word About Servers
- 「サーバー」という言葉はゆるく色々な意味で使われがち
- Git的にはどういう意味?
- Gitでは、他の多くのVCSとは異なり、中央サーバは必要ない
- Gitのプロトコル上、特別なサーバーというものは存在しない
- Gitの「サーバー」は何をするの
- 更新をやりとりする固定的な場所の提供
- 認可、アクセス制御
- サーバラックに入っててマシンパワーのあるやつ
Publishing Repositories
- インターネットに公開するのもローカルで公開するのも、リポジトリの置き場・アクセス以外に違いはない
- ストレージ節約
- bareリポジトリをcloneするときに
--reference repository
, --local
, --shared
オプション使用
- 【補】
--reference
オプション
git clone --reference /path/to/repo_first https://example.com/repo.git repo_second
- ローカルのrepo_firstリポジトリからオブジェクト取得、なければリモートリポジトリから取得
- 【補】
--local
オプション
- オブジェクトストアで可能な場合ハードリンク使用
- デフォルト有効らしい
git clone .emacs.d/ .emacs.d.2
Cloning into '.emacs.d.2'...
done.
ls -i .emacs.d/.git/objects/2f/be680db91ba72d1d3c6e999e083515912e19d9
ls -i .emacs.d.2/.git/objects/2f/be680db91ba72d1d3c6e999e083515912e19d9
604311 .emacs.d/.git/objects/2f/be680db91ba72d1d3c6e999e083515912e19d9
604311 .emacs.d.2/.git/objects/2f/be680db91ba72d1d3c6e999e083515912e19d9
- 【補】
--no-local
オプション
- 【補】
--shared
オプション
- ハードリンク以外の方法でオブジェクトストア共有
- share先 = clone元のリポジトリを削除すると死ぬ
git clone --shared .emacs.d/ .emacs.d.4
cat .emacs.d.4/.git/objects/info/alternates
/home/wand/.emacs.d//.git/objects
Repositories with Controlled Access
英語