Top Banner
私私私私私私私私私私私 Git Github 私私私私 @sinamon129
23

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

Aug 07, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 私が複数人開発で感じている Git・GitHubのうまみ

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

@sinamon129

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

自己紹介 (*´ω` *)

● @sinamon129● Pyladies staff

o しかしながら rubyと phpばっかり● モバイルアプリのサーバサイドエンジニア● バージョン管理ツールは Gitから● 社会人二年目

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

今日話すこと● 複数人での開発で Gitがあると便利★● 並行して作業を進める時 Git ♪があると便利● ♥開発フローに則ると捗る● こういう時にたまに困る (´・ ω・` )● 楽しく Githubを使う tips

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

複数人開発で Git(バージョン管理ツール)があると便利★

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

同じサーバー上で(同じファイルを)編集しながら複数人で一つのものを作る

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

こんなことがおきる(ごくり

うさぎさんがやった変更を古いファイルで上書きしちゃったよ><

苦労して実装したはずの機能が気がついたら消えてる (´;ω;` )

あーこのコードなんかおかしいんだけど、…誰が書いたんだっけなぁ

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

こういう時に Gitを使うと ....

マージ機能があるから、基本的には Gitが差分をみてマージしてくれるし、衝突しても Gitが教えてくれるね!

コミットさえしておけばいつでもその状態にもどせるね!

誰がいつ何処を変更したか分かるね!

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

並行して作業をすすめるときGit ♪があると便利

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

あるにちじょうのひとこま突然なんだけど、今日中にファイル A、ちょっと直してデプロイしておいて!

は、はい ... (どうしよう今、ファイル AをB案件の開発中で大分更新しちゃったんだよなぁ ...)

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

● 今までやっていた作業はブランチ Aに● 次やる作業は、別のブランチを切って作業すれば、ブランチ Aの変更とかぶらない

こういう時に Gitがあると

ブランチ A

new branch

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

♥開発フローに則ると捗る

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

Gitあるある● どのブランチに本番環境にデプロイしていいものを置こう?o master?

● ブランチのルールo どういう名前をつけるかo どういう時にブランチを作成するかo どういう時にブランチを削除するか

● 自由にし過ぎると迷うしややこしくなるo ツールあるある

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

そういう時に開発フロー● 開発する時にどういう手順でするとよいみたいなフレームワークみたいなものo それに従うと開発のスタイルが綺麗で、ツールの使い方的な部分での迷いがすくない

o Gitを使った開発フロー Gitフロー Githubフロー etc…

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

Githubフロー● ブランチ構成

o master:デプロイ可能なものo 作業の説明的な名前のブランチをmasterから作る

fix-hogehoge みたいな● 流れ

o ブランチを切ってローカルで開発してリモートにpushする

o masterにマージしてもよい!とおもったら PR(pull request)を作成する

o レビューを受けて OKになったら PRをmasterブランチにマージする

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

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を切っておいてリリース

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

git-pr-release

● https://github.com/motemen/git-pr-release● リリース用のプルリクを作成するコマンド

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

こういう時たまにこまる(´・ω・` )?

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

困るかもしれないこと● Conflictした><

o 沢山 conflictしたら直すのに時間がかかるo 衝突して、直しづらい時って ...

ブランチを切ったのがずいぶん前だったり、変更が多い場合など

粒度は小さめに● なんか pushできない

o 自分の pushしようとしているブランチに、自分以外の人が変更を加えていた時など

o 変更分を取り込んでから pushする( -f ダメ絶対)

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

楽しく Githubを使う Tips

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

PR( pull request)● LGTM

o Looks good to me わたしゃあんたのコードそれでいいとおもう!

o レビュー時に自分は特に指摘することがない場合とかは LGTMって書くと良い

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

その他● お blameさせていただきます

o blameするときに使うo 何でこうなってるんだ><ってコードを見つけた時に、書いた人に聞きたいけどけっして責めてないよ><みたいなスタンスで使う しょうがなかったかもしれないし ... めっちゃ昔のコードかもしれないし ...