Instantly share code, notes, and snippets.

Embed
What would you like to do?
hubコマンドでpull request
# hubインストールした後
$ hub clone doyomeki/matsuri4
$ cd matsuri4
$ hub fork
Updating koudaiii
From github.com:koudaiii/matsuri4
* [new branch] master -> koudaiii/master
new remote: user
# 勝手に fork し remote に koudaiii (ユーザ名) が追加される
$ git checkout -b feature
# feature ブランチを作成(hub コマンドで pull request を送る標準のブランチ名
# 適当にコードを修正してまたはwipをコミットする
$ git commit --allow-empty -m wip
$ git push -u koudaiii feature
# remote の自分の feature ブランチに push
$ hub pull-request
# エディタが立ち上がるので、タイトルコメントを入力
$ hub pull-request -h koudaiii:other_branch_name
# もしくは他のブランチ名なら -h オプションで適当に入れる
upstream(Fork元リポジトリ)の設定
Forkした自分のリポジトリ (https://github.com/koudaiii/matsuri4) は、Fork元のリポジトリ (https://github.com/doyomeki/matsuri4) の変更内容を自動更新しません。なので、Fork元のリポジトリの最新情報を自分のリポジトリに反映させる必要があります。
ここで、Forkした自分のリポジトリには、大抵デフォルト名としてoriginという名前がついています。新しくFork元のリポジトリにupstreamという名前をつけて追加しましょう。
git remote add upstream https://github.com/doyomeki/matsuri4
8. Fork元リポジトリの最新を取得しlocalのmasterを更新
# branchをmasterに変更
git checkout master
# upstreamからpullして最新を取得
git pull upstream master
# localのmasterをorigin(ここではkoudaiii)にpush(オプション)
git push koudaiii master
9. branchをrebase
# branchを作成したbranchに変更
git checkout feature
# branchをrebase
git rebase master
10. branchをorigin(ここではkoudaiii)にpush
git push -f koudaiii feature
11. Pull Requestを作成
GithubでForkした自分のリポジトリ (https://github.com/koudaiii/matsuri4) に行き、左側にあるボタンよりbranchをfeatureに切り替えます。右上にあるPull Requestボタンを押して、Pull Requestを送信します。
または、
$ hub pull-request
########## トラブルシューティング ############
#### $ hub pull-request
Error creating pull request: Unprocessable Entity (HTTP 422)
Missing field: "head_sha"
Missing field: "base_sha"
No commits between user:master and user:new_branch
対応としては-uオプション付きでもう一度pushすることです。
-uについてはこのあたりを参照してください。
$ git push -u origin new_branch
##################################################
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment