2016-03-29 24 views

答えて

4

origin/branchXはリモートトラッキングブランチであり、git fetchを実行するたびにリモートリポジトリからの変更で更新されます。一方、branchXは、このブランチのローカルバージョンです。 branchXは、origin/branchXと同期していない可能性があり、実際にリモートリポジトリにあるものと同期がとれていない可能性があります。

したがって、マージの違いは、さまざまな化身の相違点branchXによって異なります。あなたはbranchYに非常に最新branchXをマージしたい場合は、次の操作を行う必要があります。

git fetch origin   # update remote tracking branchX 
git checkout branchY  # switch to branchY 
git merge origin/branchX # merge 

あなたは、プロセスにbranchXあなたの地元を更新したい場合は、あなたがこれを行うことができます:

git checkout branchX 
git pull origin branchX 
git checkout branchY 
git merge branchX 

しかし、branchXのローカルコピーをbranchYにマージする必要があるかもしれません。たとえば、新しい変更がリモコンのbranchXに入っていて、それをbranchYに持ってこないようにしたい場合など、これは典型的な使用例です。この場合、次のようにマージを実行します:

git checkout branchY 
git merge branchX 
1

リモートブランチをマージするときに、他の開発者がリモートブランチに適用したリモートの変更をすべて取得していますが、まだローカルブランチには存在しない可能性があります(ローカル変更はまだプッシュされていません

ローカルブランチをマージするときに、リモートブランチにまだプッシュされていないローカルで行ったすべての変更とマージしますが、他の開発者がリモート変更を加えていない場合は、それはあなたの地元支部にはまだないかもしれません。

  -*-*-* branchX 
*-*-*-*-/-*-*-*-*-* Origin/branchX 

は、あなたのローカルブランチに二度の変更をコミットしていると誰かが5つのコミットを追加し、あなたはまだあなたのローカルブランチ上でこれらの5を持っていないので、レポにプッシュしている、これらは、ローカルとリモートの支店です想像してみてください。

関連する問題