LoginSignup
30
30

More than 5 years have passed since last update.

プルリクエスト時に競合した時の対処方法

Last updated at Posted at 2017-07-28

プルリクエスト(Pull Request)をしようとした時に競合してて、マージができない場合の対処方法を調べたのでメモしておきます。

前提

developブランチに対してfeature/hogeブランチをプルリクしたとき、競合が発生したものとします。

競合を解決するまでdevelopにfeature/hogeブランチをマージすることはできませんので、この記事ではrebaseを使って事象を解決します。(参考)

手順

  1. developブランチをpullして最新の状態にする

    $ git checkout develop
    $ git pull origin develop
    
  2. feature/hogeブランチに切り替える

    $ git checkout feature/hoge
    
  3. feature/hogeブランチに対してdevelopブランチをrebaseする

    $ git branch
    => カレントのブランチがfeature/hogeであることを念のため確認
    $ git pull --rebase origin develop
    

    途中でコンフリクトが発生すると、そこでrebase処理が中断されます。

  4. 競合箇所を修正する

  5. 修正が完了したらaddしてrebaseを再開する

    $ git add .
    $ git status
    => コンフリクトが解消されていることを確認する
    $ git rebase --continue
    

    rebase処理が再開されます。再びコンフリクトが発生するとrebase処理が中断されます。

  6. コンフリクトが発生しなくなるまで修正とrebaseを繰り返す

  7. 全てのコンフリクトが解決したら、-fオプションを追加した上でリモートリポジトリにpushする

    $ git status
    => rebaseが完了していることを確認する。完了していればrebasingのようなメッセージが出なくなるはず
    $ git push -f origin feature/hoge:feature/hoge
    

    (因みにリモートリポジトリにfeature/hogeを作っていない場合は最後のpush操作は不要です)

注) git操作は自己責任でお願いしますm(_ _)m


[参考]

30
30
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
30