Git/Pull Request 運用

Git/Pull Request 運用

GitHub とか Bitbucket とかのサービスを使う

中央作成

本家の中央を適当に作る。これが本線。

作業用にFork

適当にfork。これがリモートの自分のリポジトリになる。

作業用にclone

$ git clone git@bitbucket.org:hogehoge/piyopiyo.git

この時点ではローカル作業用リポジトリのデフォルトの master ブランチと リモートの自分の master ブランチが繋がっている状態になっている。

もし、この時点で別ブランチがあるのなら

$ git checkout -b hoge origin/hoge
$ git checkout -b piyo origin/piyo

とかやって、それぞれ接続する。

作業用ブランチ作成

$ git checkout -b hoge_spike

適当に作業

$ git add hogehoge.txt
$ git commit -m "hogehogehoge"

作業途中結果をpush

バックアップ的な意味で

$ git push origin hoge_spike

中央の変化に追従

中央をupstream として登録

$ git remote add upstream git@bitbucket.org:hogehoge/fugafuga.git

masterに引き込む。masterは作業には使ってないので何の問題もなく取り込まれる

$ git checkout master
$ git pull upstream master

作業ブランチを付け替えて追従する

$ git checkout hoge_spike
$ git rebase master

forkに反映

fork の master を反映

$ git checkout master
$ git push origin master

fork の作業ブランチに反映

$ git checkout hoge_spike
$ git push -f origin hoge_spike

リビジョンを積み重ねたわけでなく、ブランチの親が変わっているので通常はpushできない。 なので f オプションで強制変更する。

fork して作業しているので自分以外の人間が修正していないのでこのようなことが許される

作業の繰り返し

↑の作業をいくつか繰り返す

プルリク用ブランチを作る

作る前に本家を取り込んで限りなくプルリクが本家状態を考慮したものにしたい

$ git checkout hoge_spike
$ git checkout -b hoge
$ git rebase -i master

つまり作業ブランチのコピーを作る。作って rebase を噛ますことでリビジョンの整理を行う

プルリク用ブランチをアップ

$ git checkout hoge
$ git push origin hoge

プルリクを出す

出す

本家にマージされる

本家にマージされたらそれを取り込んで追従

$ git checkout master
$ git pull upstream master

作業ブランチやプルリク用ブランチの削除

ローカル

$ git branch -D hoge_spike

fork

$ git push origin :hoge_spike

何故かコロン付きのプランチ名をpushすると消える

中央に新たなブランチが作成された場合

中央のブランチ情報をローカルに引き込む

$ git fetch upstream

トラッキングのブランチをローカルブランチを作成して繋げる

$ git checkout -b hogehoge123 upstream/hogehoge123

フォークにも反映させる

$ git push origin hogehoge123

Tag

vcs/git/pull_request_ope.txt · 最終更新: 2017-09-29 12:20 by ore