More Related Content
Similar to (工事中) Git の仕組み
Similar to (工事中) Git の仕組み (20)
(工事中) Git の仕組み
- 2. 入門Git
1. gitとは
2. gitの基本概念
3. インストールと初期構成
4. 独りで使う
5. 2か所で使う
6. グループで使う
7. ブランチを使った開発
8. 分散環境とブランチとの関連
9. 変更履歴を追いかける
10. パッチ・べースのワークフロー
11. ゴミファイルの無視
12. 構成変数
13. リモート・リポジトリ定義
14. ファイル・アトリビュート
15. 歴史の2分探索
16. 間違いからの回復
17. フック・メカニズム
18. リポジトリの出版公開
19. gitの周辺
- 6. Git とは?
● オープンソースで開発されているバージョン管
理システム
● Linus Torvalds が Linux カーネルのソース管
理のために開発を始めたツール
● 種類はバージョン管理システムの分散型に含ま
れる
- 7. 集中型 (CVS, Subversion)
リポジトリ
up
update
da
it
mm
te
commit
co
co
te
m
da
mi
t
up
ファイル・ディレクトリ群 ファイル・ディレクトリ群 ファイル・ディレクトリ群
- 8. 分散型 (Git)
共用リポジトリ fe
tch
h
p us
pu
fetch
ch sh
push
fet
ローカルリポジトリ ローカルリポジトリ ローカルリポジトリ
commit
commit
commit
ファイル・ディレクトリ群 ファイル・ディレクトリ群 ファイル・ディレクトリ群
- 9. Subversion の作業例
> svn update # リポジトリの修正をローカルのファイル・ディレクトリ群に
> 反映
> emacs test1.js # test1.js をエディタで修正
> svn commit # test1.js をリポジトリに反映
>
> emacs test2.js # test2.js をエディタで修正
> git commit # test2.js をリポジトリに反映
- 10. Git の作業例
> git fetch # 共用リポジトリから修正差分を取得
> git merge origin/master # ローカルリポジトリにマージ
>
> emacs test1.js # test1.js をエディタで修正
> git add test1.js # test1.js をコミット対象に指定
> git commit # コミット対象のものをローカルリポジトリににコミット
>
> emacs test2.js # test2.js をエディタで修正
> git add test2.js # test2.js をコミット対象に指定
> git commit # コミット対象のものをローカルリポジトリににコミット
>
> git push # ローカルリポジトリの修正内容を共用リポジトリに反
映
- 11. Git の作業例 (簡略化)
> git pull # 共用リポジトリから修正差分を取得して、ローカルリ
> ポジトリにマージ
> emacs test1.js # test1.js をエディタで修正
> git commit -a # 修正されたファイル群をローカルリポジトリにコミット
>
> emacs test2.js # test2.js をエディタで修正
> git commit -a # 修正されたファイル群をローカルリポジトリににコミッ
ト
>
# ローカルリポジトリの修正内容を共用リポジトリに反
> git push 映
- 12. 分散型の特長
● ネットワークから分離されている環境でも、ロー
カルのリポジトリ中で仕事が続けられる
● 他人に悪影響を及ぼすことを恐れずに、大規模
な実験的な変更を自由に行ない、その途中経
過を記録しておくことができる
● まとまった変更がいったん完成した時点で、履
歴を見なおして、適切な形に書き直してから公
開することができる
- 14. Git はオブジェクト
● Git は「オブジェクト」と呼ばれるデータの集合体
● オブジェクトの内容を基に生成されたハッシュを
キーとした Key Value Storeで管理されている
● .git/objects 下に格納されている
- 15. 主なオブジェクトの種類
● blob
○ ファイルの中身を表す
● tree
○ ディレクトリの中身を表す
● commit
○ 修正差分を表す
- 16. オブジェクトの構造
オブジェクト名
ヘッダ情報(型と長さ)
SHA-1
ハッシュ
オブジェクトの内容
(型により異なる)
- 19. tree オブジェクトの例
b1242d7...
tree 224
100644 bbc4538... README
040000 428b354... lib
100755 bfef14a5... start.js
型を表す オブジェクト名