Menu

キーワード

  • Git
  • GitHub
  • プルリクエスト
  • rebase

したいこと

プルリクエストを作成したい。

ブルリクエスト作成用にブランチを作成していて、リモートのmasterには別のコミットがすでにマージされているものとする。

どうやって

ローカルのmasterを最新にする

$ git checkout master
$ git fetch

ローカルのブランチに切り替えてローカルのmasterからrebaseする

$ git checkout <feature-branch>
$ git rebase master

コンフリクトが発生したら?

コンフリクトが発生したファイルを修正してaddしてからrebaseを続ける。

$ git add <conflicting-files>
$ git rebase --continue

ローカルのブランチをpushする

$ git push origin <feature-branch> -f

GitHubでプルリクエストを作成する

画面から作成するだけ。

ちなみに

コンフリクトしても慌てない

コンフリクトが発生すると次のように知らせてもらえている。

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".

addのくだりがないが、addしていないと次のように忘れていないか?と確認が入る。

No changes - did you forget to use 'git add'?
If there is nothing left to stage, chances are that something else
already introduced the same changes; you might want to skip this patch.

プッシュするのに強制するのは?

rebaseすると、そのブランチはリモートとローカルでコミットログが一致しない。

ブランチはプルリクエストを作成するためのものなので構わない。ということはこのブランチは常に個人だけが触るように運用するということ??

参考

スポンサーリンク