Github で pull request してみたい!!

こんばんは。
チンカスプログラマーとののしられる日々ですが、僕は元気です。
少しコードがかけるようになるとしてみたくなりますよね。
欲張るのは大事なことです。
そこで、恥ずかしくない pull request をするため少し調べてみました。

基本的な流れ

・Github 上で fork する
・ローカルに持ってくる

git clone repo
cd repo

・作業用の branch を作り、切り替える(基本的にmasterはいじらない)

git checkout -b new_feature
なにかをする。
git commit -m "add new function"

・fork した自分のリポジトリにpush

git push origin new_feature

そして、Github上から pull request。

変化に追いつく

作業中にもmasterは変化していくわけです。

・おおもとのリポジトリをリモートとして登録する。(この upstream って名前は慣習のようです。)

git remote add upstream git://hogehoge

・おおもとの変化を pull する

git checkout master
git pull upstream master

・引っ張ってきた master を自分がいじってる brach にまぜる。

git checkout new_feature
git rebase master

※ rebaseの際にconflict した場合は衝突した箇所をなおしてから、

git add .
git rebase --continue

こんな感じですかね。

かっこよくしよう!

commit をまとめる

最新からn個前のコミットをまとめる

git rebase -i HEAD~n

するとエディタに以下のようなぶんが出てくる。

pick 0000000 commit message1
pick 0000001 commit message2
pick 0000002 commit message3

ここでは、commitをまとめたり、commit messageの編集、
まとめるcommit まとめない commit の選択、
順序の入れ替えができるみたいです。
エディタに説明でてくるのでここでははぶいちゃいます!!

pick 0000000 commit message1
fixup 0000001 commit message2
fixup 0000002 commit message3

こうすれば 0000000 のコミットにまとめられる。

最後に

こんなのが基本的なフローでしょうか...
pull request とかできるようにもっとがんばりたいですね。