私私私私私私私私私私私 Git ・ Github 私私私私 @sinamon129
私が複数人で感じている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/detail/lgtm/oeacdmeoegfagkmiecjjikpfgebmalof?hl=ja&gl=JP
● lgtm.ino http://www.lgtm.in/
その他● お blameさせていただきます
o blameするときに使うo 何でこうなってるんだ><ってコードを見つけた時に、書いた人に聞きたいけどけっして責めてないよ><みたいなスタンスで使う しょうがなかったかもしれないし ... めっちゃ昔のコードかもしれないし ...