私が複数人で感じている
Git・Githubのうまみ
@sinamon129
自己紹介(*´ω`*)
● @sinamon129
● Pyladies staff
o しかしながらrubyとphpばっかり
● モバイルアプリのサーバサイドエンジニア
● バージョン管理ツールはGitから
● 社会人二年目
今日話すこと
● 複数人での開発でGitがあると便利★
● 並行して作業を進める時Gitがあると便利♪
● 開発フローに則ると捗る♥
● こういう時にたまに困る(´・ω・`)
● 楽しくGithubを使うtips
複数人開発でGit(バージョン管
理ツール)があると便利★
同じサーバー上で(同じファイルを)
編集しながら複数人で一つのものを作る
こんなことがおきる(ごくり
うさぎさんがやった変更を
古いファイルで上書きしちゃったよ><
苦労して実装したはずの機能が
気がついたら消えてる(´;ω;`)
あーこのコードなんかおかしいんだけど、
誰が書いたんだっけなぁ…
こういう時にGitを使うと....
マージ機能があるから、基本的にはGitが差分を
みてマージしてくれるし、
衝突してもGitが教えてくれるね!
コミットさえしておけば
いつでもその状態にもどせるね!
誰がいつ何処を変更したか分かるね!
並行して作業をすすめるとき
Gitがあると便利♪
あるにちじょうのひとこま
突然なんだけど、
今日中にファイルA、
ちょっと直して
デプロイしておいて!
は、はい...
(どうしよう今、
ファイルAを
B案件の開発中で
大分更新しちゃった
んだよなぁ...)
● 今までやっていた作業はブランチAに
● 次やる作業は、別のブランチを切って作業
すれば、ブランチAの変更とかぶらない
こういう時にGitがあると
ブランチ A
new branch
開発フローに則ると捗る♥
Gitあるある
● どのブランチに本番環境にデプロイしてい
いものを置こう?
o master?
● ブランチのルール
o どういう名前をつけるか
o どういう時にブランチを作成するか
o どういう時にブランチを削除するか
● 自由にし過ぎると迷うしややこしくなる
o ツールあるある
そういう時に開発フロー
● 開発する時にどういう手順でするとよいみ
たいなフレームワークみたいなもの
o それに従うと開発のスタイルが綺麗で、ツールの使
い方的な部分での迷いがすくない
o Gitを使った開発フロー
 Gitフロー
 Githubフロー
 etc…
Githubフロー
● ブランチ構成
o master:デプロイ可能なもの
o 作業の説明的な名前のブランチをmasterから作る
 fix-hogehoge みたいな
● 流れ
o ブランチを切ってローカルで開発してリモートに
pushする
o masterにマージしてもよい!とおもったらPR(pull
request)を作成する
o レビューを受けてOKになったらPRをmasterブラン
チにマージする
Githubフローをベースに実際の開発例
● 作業内容はissueを作成して概要を書く
● ブランチ構成
o master:デプロイ可能なもの
o develop:PRを通って開発機で確認するもの
o issues/issue番号-作業の内容 という名前のブランチ
を作成
● 流れ
o ブランチを切ってローカルで開発してリモートにpushする
o masterにマージしてもよい!とおもったらPR(pull request)を作成する
o レビューを受けてOKになったらPRをdevelopブラン
チにマージする
o リリースするタイミングでgit-pr-releaseでdevelop
とmasterの差分をチェックしmasterにマージして
tagを切っておいてリリース
git-pr-release
● https://github.com/motemen/git-pr-release
● リリース用のプルリクを作成するコマンド
こういう時たまにこまる
(´・ω・`)?
困るかもしれないこと
● Conflictした><
o 沢山conflictしたら直すのに時間がかかる
o 衝突して、直しづらい時って...
 ブランチを切ったのがずいぶん前だったり、変
更が多い場合など
 粒度は小さめに
● なんかpushできない
o 自分のpushしようとしているブランチに、自分以外
の人が変更を加えていた時など
o 変更分を取り込んでからpushする(-f ダメ絶対)
楽しくGithubを使うTips
PR(pull request)
● LGTM
o Looks good to me
 わたしゃあんたのコードそれでいいとおもう!
o レビュー時に自分は特に指摘することがない場合と
かはLGTMって書くと良い
LGTM画像を探す
● LGTM画像chrome拡張
o https://chrome.google.com/webstore/detai
l/lgtm/oeacdmeoegfagkmiecjjikpfgebmalof
?hl=ja&gl=JP
● lgtm.in
o http://www.lgtm.in/
その他
● おblameさせていただきます
o blameするときに使う
o 何でこうなってるんだ><ってコードを見つけた時
に、書いた人に聞きたいけどけっして責めてないよ
><みたいなスタンスで使う
 しょうがなかったかもしれないし...
 めっちゃ昔のコードかもしれないし...

私が複数人開発で感じている Git・GitHubのうまみ