Git基礎講習
2015.03.26 石橋啓太
なるべく噛み砕いた
Agenda
• Gitって何?
• CVSとの違いは?
• Gitでまず覚えること
• STEP1. 作業フローに沿って追ってみる
• STEP2. ブランチを使ってみよう
• 実際の作業の流れまとめ
• おまけ:他の機能は?
Gitって何?
Gitはバージョン管理システムのひとつ
変更履歴を保存していく
何ができるの?
履歴を辿って過去のファイルへアクセス
同時に編集しちゃう衝突を防ぐ
CVSとの違いは?
集中型 と 分散型
(CVS) (Git)
CVSとの違いは?
集中型(CVS)
リモートからファイルをそのまま持ってきて
それを直接編集・コミット・反映させる。
CVSとの違いは?
分散型(Git)
ローカルに、リモートと同じリポジトリをコピー
ローカル内で作業・コミットを行う
Gitでまず覚えること
一番重要なのは
リポジトリが2種類あること
Gitでまず覚えること
リモートリポジトリ
みんなのファイルを合体させるところ
Gitでまず覚えること
ローカルリポジトリ
各自開発をするところ
各々なので、細かい修正履歴などはココに残る
(ローカルなので、プロジェクトを触る人数分存在する)
STEP1. 作業フローに沿って追ってみる
まず、触りたいファイルがリモートリポジトリにあります
リモートリポジトリ
STEP1. 作業フローに沿って追ってみる
ローカルで作業するためにコピーする(clone)
※CVSだとcheckout
リモートリポジトリ
ローカル環境
ローカルリポジトリ
clone
STEP1. 作業フローに沿って追ってみる
持ってきたファイルを編集する
STEP1. 作業フローに沿って追ってみる
修正した内容を「ローカル」にコミットする
commit
ローカルリポジトリ
STEP1. 作業フローに沿って追ってみる
コミットしたよ?
終わりじゃないの?
STEP1. 作業フローに沿って追ってみる
コミットしたのはローカルなので、
リモートに送って初めて反映される
ローカルリポジトリリモートリポジトリ
STEP1. 作業フローに沿って追ってみる
リモートリポジトリにpushする
※CVSだとココがcommit
ローカルリポジトリリモートリポジトリ
push
STEP1. 作業フローに沿って追ってみる
修正完了!
ローカルリポジトリリモートリポジトリ
ここまでのメリット
ローカルで作業をする
リポジトリが分かれている
オフラインでもOK
コミット間違えても本体が汚れない
平行に開発ができる
ダメな修正だったら却下できる
STEP2. ブランチを使ってみよう
ブランチとは?
履歴を分岐して記録する
異なる目的の開発・管理が出来る
よく見るこういう図
STEP2. ブランチを使ってみよう
ブランチはマージ出来る
マージして欲しいときはプルリクエストを出す
別のブランチで作業し、完成してからメインへ合体さ
せることが出来る
merge
STEP2. ブランチを使ってみよう
プルリクエストをするメリット
ブランチを使ってプルリク→マージの流れを汲むと、
間にレビューを挟むことができます
いい感じに出来たからマージしてよー
じゃあレビューするね
Pull Request
STEP2. ブランチを使ってみよう
プルリクエストをするメリット
そうすることで、安全かつ高品質にファイルの運用を
進めることができます。
オッケー。マージしたよ
merge
実際の作業の流れまとめ
1. 自分の作業するブランチに移動
2. 修正作業
3. ローカルブランチにcommit(2∼3繰り返し)
4. 完成したらリモートブランチにpush
5. メインのブランチへマージさせたい
6. プルリクを送ってレビューしてもらう
7. 大丈夫ならマージされる 終わり!
(checkoutしてローカルブランチに移動)
おまけ:他の機能は?
pull
fetch
ローカルよりもリモートの方が履歴が進んでた場合、ローカルをリモートと
同じ状態にする。
他の人が触るブランチの場合、これをして状態を合わせてから作業すべし。
リポジトリの進行状態の情報だけを取得できる。最新の状況を確認してから
操作したい時はコチラ。
revert, reset, etc.....
コミット履歴を操作したりできるけどまだ覚えなくていいと思う。

なるべく噛み砕いたGit基礎講習