2017-06-21 6 views
3

私は自分のブランチで作業していましたが、他の誰かから私がmasterにマージしなければならないプルリクエストがあります。マスタを更新中にプルリクエストを処理中

プルリクエストをmasterにマージした後で、devブランチをmasterにマージできませんでした。それでは、私がやったことです:

  1. 私のブランチのコミット:

    git fetch && git rebase origin/master && git pull && git push 
    

    その後、私の枝のgit logはこのように見えました。

  2. 他の寄稿者のコミット。
  3. 私のブランチのコミット(ポイント1から)は、自分自身を繰り返します。

私は間違っていますか?どうすればこの問題を回避できますか? git logで作成した混乱を修正するにはどうすればよいですか?私の全体のgit logはそれのためにひどく見えます..

答えて

4

それはあなたの目標が何であったかによって異なります。あなたのブランチをリベースしたい場合

  1. - それは、あなたがあなたのコマンドでgit pullを必要としない、origin/masterから始まる新しいものと、そのブランチ上の既存のコミットを置き換えるです:あなたは本当に2つのオプションがあります。その後、git push -fを作成するか、おそらくそのポイントから新しいブランチを作成し、ちょうどgit pushを作成します。これは、になります:

  2. 新しいマスターが
  3. を変更し、古いマスターの歴史
    • (順番に)あなたがコミットを保存して合流点を追加したい場合は、あなたのブランチが
  4. をコミットマスターの場合は、これらのコマンドをgit checkout your_branch ; git fetch ; git merge origin/masterと置き換えることができます。ブランチをマスターにマージしようとしているときと同じ競合を解決します。しかし、一方で、彼らはあなたがリベースするときに解決しなければならないのと同じ矛盾です。これは、になります:

    • 古いマスターの歴史(順番に)あなたのブランチが新しいマスターと
    • マージをコミットすることができます、それを修正する方法については

を変更しますあなたの古い枝はgit reflogにあります。あなたのrebaseの前からコミットを探し、そこから枝を作りなさい。そのように新しいブランチを開始するか、古いブランチをそのコミットにリセットするかの選択肢があります。

+0

2番目のオプションは私にとっての解決策でした。私はそれをチェックアウトしました( 'git reflog'のハッシュを見つけました)。そして' git fetch; git merge origin/master'、ありがとう! – shavit

関連する問題