2016-04-26 7 views
0

私たちはSourceTree経由でgitを使用しています。私はマスター(いくつかのホットフィックスのために以前に更新されていた)をリリースブランチにマージする過程にあります(これは数ヶ月前にマスターから壊れました)。なぜgit/SourceTreeは、マージ先ではなくソース内のコンフリクトを編集したいのですか?

ソースツリーは、master - > releaseからプルリクエストを実行するときに競合が発生していることを示しており、atlassian-Stash-GUIを介して以下のコマンドを使用するように通知します。

私が理解できないことは、次のとおりです。次に、マスターの下のコマンドを使って競合を解決し、マスターにプッシュするように見えます。私はまた、NextReleaseからマスターに変更を加えて、このプルリクエストのためにNextReleaseにしか入れないと思ったときに終わります。

私は、NextReleaseブランチでこれらのコマンドを使用して終了し、そこの競合を解決し、マスターを変更しないで残すべきだと思っていました。

ここで何か問題がありますか?

git fetch origin release/NextRelease 

git checkout master 
git merge FETCH_HEAD 

<now we should resolve the conflicts> 

git commit 
git push origin HEAD 
+1

またSourceTreeとスタッシュ経由でのgitを使用して、私は、マージの競合のためのスタッシュの指示は、当社が事業を(そして、あなたがしたいように見える)の方法に逆方向であることがわかってきました。指示のリリースブランチとマスターを反転させると、うまくいきました。 – WPrecht

答えて

1

これはプルリクエストの仕組みです。マージが発生したソースの競合を解決します。プル要求はコードレビューに最も一般的に使用されます。

通常のマージを行うだけで、競合の解決をソース上で行う必要があります。

git checkout release/NextRelease 

git merge master 

<Resolve conflicts. Make sure everything looks good> 

git push origin release/NextRelease 
+0

プルリクエストがこのように動作する理由を知っていますか?宛先ブランチではなく、ソースブランチでの競合を編集することができますか? – ManOnAMission

+0

私はプルリクエストを「ここで見ている変更は、宛先ブランチに適用されるものです」と表示するのが最も簡単だと思います。 "これらの変更は宛先ブランチに加えて、ここに含まれていないいくつかの競合解消の変更"になりません。 これは、目的地に何が起こっているかを100%確信する方法です。 – lorengphd

関連する問題