git 初心者講座 by forkwell
TRANSCRIPT
Git 初心者講座 by Forkwell
2016/12/21(水)@grooves
自己紹介
● 名前: 正徳 巧● twitter: 神速(@sinsoku_listy)● github: sinsoku● 所属: 株式会社grooves● 言語: Ruby, Node.js, Elixir
GitHub
バージョン管理
Git/GitHub
なぜバージョン管理システムを使うのか?
履歴が見られる
いつ 誰が どこを
理由: XXX のバグを修正
過去の状態に戻せる
複数人で作業ができる
マージ(統合)
複数バージョンを管理できる
バージョン 1系
バージョン 2系
実験的な作業を行える
安定版
開発版
実験的な作業を行える
安定版
実験的な作業を行える
安定版
開発版
ファイルを安心して変更できる
どんな仕組み?
Project
README
src
リポジトリ
作業ディレクトリ
Project
README
src
リポジトリ
作業ディレクトリ
save 1
Project
README
src
リポジトリ
作業ディレクトリ
save 1 save 2
Project
README
src
リポジトリ
作業ディレクトリ
save 1 save 2 save 3
バージョン管理
Git/GitHub
git の特徴
分散型 インデックス ブランチ・タグ
リポジトリ
README Hello.java README Hello.java
履歴の作成
作業コピーの更新
作業コピー
集中型(svn)
READMEの追加
Hello.javaの実装
READMEの編集
rev: 1
rev: 2
rev: 3
リポジトリ
集中型(svn)
リポジトリ
README Hello.java
履歴の作成
作業コピーの更新
作業コピー
分散型(git)
リポジトリ
履歴の送信
履歴の受信
作業コピー リポジトリ
履歴の作成
作業コピーの更新
分散型(git)
リポジトリ
履歴の送信
履歴の受信
作業コピー リポジトリ
履歴の作成
作業コピーの更新
リポジトリ
中央
ローカル
分散型(git)
リポジトリ
リポジトリ
中央
READMEの追加
READMEの追加
rev:1af9b
rev:1af9b
リポジトリ リポジトリ
READMEの追加
リポジトリ
中央
READMEの追加
READMEの追加
rev:1af9b
rev:1af9b
rev:1af9b
リポジトリ リポジトリ
READMEの追加
Hello.javaの実装
rev:9d6aa
リポジトリ
中央
READMEの追加
READMEの編集
READMEの追加
rev:1af9b
rev: 5fde8
rev:1af9b
rev:1af9b
リポジトリ リポジトリ
READMEの追加
rev:1af9b
Hello.javaの実装
rev:9d6aa
リポジトリ
中央
READMEの追加
rev:1af9b
READMEの編集
rev: 5fde8
READMEの追加
rev:1af9b
Hello.javaの実装
rev:9d6aa
READMEの編集
rev: 5fde8
rev: 5fde8?
リポジトリ リポジトリ
READMEの追加
rev:1af9b
Hello.javaの実装
rev:9d6aa
リポジトリ
中央
READMEの追加
rev:1af9b
READMEの編集
rev: 5fde8
READMEの追加
rev:1af9b
Hello.javaの実装
rev:9d6aa
READMEの編集
rev: 5fde8
READMEの追加
Hello.javaの実装
READMEの編集
rev: 1
rev: 2
rev: 3
リポジトリ
集中型(svn)
39fde84ab553783eab2b0443b7fe7300eb65119d
SHA-1 変換器
コミット内容(日時、変更者 など)
16進数40桁
SHA-1 変換器
コミット内容(日時、変更者 など)
16進数40桁
39fde84ab553783eab2b0443b7fe7300eb65119d
git の特徴
分散型 インデックス ブランチ・タグ
作業ディレクトリ
インデックス リポジトリ
・・・
作業ディレクトリ
インデックス リポジトリ
・・・
add
作業ディレクトリ
インデックス リポジトリ
・・・
commit
作業ディレクトリ
インデックス リポジトリ
・・・
add
作業ディレクトリ
インデックス リポジトリ
・・・
commit
なぜインデックスがあるのか?
行単位でのコミット コミット前の確認
git の特徴
分散型 インデックス ブランチ・タグ
rev: 1af9b rev: 5fde8
$ git branch stable 5fde8$ git checkout stable
ブランチstable
rev: 1af9b rev: 5fde8
$ (ファイルの変更)$ git add
ブランチstable
rev: 1af9b rev: 5fde8 rev: 9d6aa
$ git commit -m “update”
ブランチ
stable
3種類のタグ
軽量タグアノテーション付きタグ
署名付きタグ
軽量タグ
v1.0.0
rev: 1af9b rev: 5fde8
$ git tag v1.0.0 5fde8
軽量タグ
v1.0.0
rev: 1af9b rev: 5fde8 rev: 9d6aa
$ git commit -m “update”
Gitのホスティングサービス
Octocat
● 中央リポジトリを置くことができる● 公開リポジトリ無制限
(非公開は有料 )● Web上でファイルが表示できる● 使い易い画面● Pull Request(プルリクエスト)
リポジトリ
リポジトリ
Pull Request
リポジトリ
リポジトリ
Pull Request
リポジトリ
アクセス権限がない
リポジトリ
リポジトリ
Pull Request
リポジトリ
Fork
リポジトリ
リポジトリ
Pull Request
リポジトリ
Fork
リポジトリ
リポジトリ
リポジトリ
Pull Request
リポジトリ
Fork
リポジトリ
push
commit
リポジトリ
リポジトリ
Pull Request
リポジトリ
Fork
リポジトリ
Pull Request
更に勉強する際の参考資料
● サルでもわかるGit入門
○ http://www.backlog.jp/git-guide/
● Pro Git Book
○ https://git-scm.com/book/ja/v2
● Try Git: Git Tutorial
○ https://try.github.io
引用: サルでもわかるGit入門
ご清聴ありがとうございました