私は2つのブランチを持っています-master
とdevelop
私はdevelop
ブランチで5つのアイテムを含むプルリクエストをいくつか行っていますが、これはmaster
のアイテム数と同じです。
ただし、誰かがいくつかのコミットを実行し、pushed
ブランチへのいくつかの項目でmaster
を実行したため、現在8つの項目があります。
develop
のプルリクエストはまだ承認/マージされていないため、プルリクエストを更新しようとすると、This pull request can't be merged. You will need to resolve conflicts to be able to merge
そして私に次のことをするように頼んだ:
git fetch Origin master
git checkout develop
git merge FETCH_HEAD
git commit
git Push Origin HEAD
そして、これはコミットを「プッシュ」した後で起こり、時々混乱します。次に、追加の3つの新しい項目を再度追加してコミットするように求められていることに気付きました。つまり、これは私の2つの支店間のアイテムと内容が常に同じであることを確認する必要があることを意味しますか?私はいつもgit pull/fetch
しかし、私が確認するより良い方法はありますか?
これは、GitHubがPRブランチをmaster
にマージすることを望んでいることを意味しますが、競合があるため、マージできません。質問のコメントで説明したように、これに対処する最良の方法は(通常)、コマンドラインでmaster
ブランチをdevelop
にマージすることです。競合が表示され、解決するように求められます。マージを完了してプッシュすると、GitHubの緑色のボタンを使用してPRをmaster
にマージできるようになります。
あなたcoulddeploy
ブランチをmaster
にマージするだけです(これは少し賢明に聞こえます)。その場合、PRを完全にバイパスすることになります。 PRを「マージ解除」して閉じる必要があり、個別にマージコミットをmaster
にプッシュします。
最初の方法で
master
に到達する前にコードを確認する機会をチームに与えます。そして以下のようにEclipse-gitインターフェースを使用して解決しました。
1-すべての変更を 'dev'ブランチで準備し、gitにプッシュします。
2- 'master'ブランチにチェックアウトし、すべての変更をプルします。
3-「Gitリポジトリビュー->ローカルフォルダーを展開する」に移動し、「マスター」ブランチを右クリックして、「マージ」オプションをクリックします。
4- [Gitステージング]ウィンドウに赤いスポットとのすべての競合が表示されます。
5-各赤いスポットを右クリックして、-> 'git indexで置き換える'をクリックします。その赤い点が消えます。
6-すべての赤いスポットに対してこれを行った後、右側のボタンからマージをコミットします。
7-完了。