2016-03-29 17 views

Antwort

4

origin/branchX ist ein Remote-Tracking-Zweig und wird jedes Mal, wenn Sie eine git fetch machen, mit Änderungen aus dem Remote-Repository aktualisiert. Auf der anderen Seite ist branchX Ihre lokale Version dieser Branche. branchX ist möglicherweise nicht mehr synchron mit origin/branchX, was wiederum nicht mit den Daten im Remote-Repository übereinstimmt.

Daher hängt der Unterschied bei der Durchführung einer Zusammenführung von den Unterschieden in den verschiedenen Inkarnaten von branchX ab. Wenn Sie die neueste branchX in Ihre branchY zusammenführen möchten, dann sollten Sie folgendes tun:

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

Wenn Sie wollen auch Ihren lokalen branchX im Prozess aktualisieren, können Sie dies tun:

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

Sie müssen jedoch möglicherweise Ihre lokale Kopie von branchX in branchY zusammenführen, ohne einen Zweig mit dem Remote zu synchronisieren. Dies wäre ein typischer Anwendungsfall, wenn z. B. neue Änderungen in branchX auf der Fernbedienung eintraten und Sie diese noch nicht in branchY bringen wollten. In diesem Fall würden Sie die Zusammenführung wie folgt durchführen:

1

Beim Zusammenführen des Remote-Zweiges - Sie erhalten es mit allen Remote-Änderungen, die von anderen Entwicklern übernommen wurden, aber noch nicht in Ihrem lokalen Zweig (ohne Ihre lokalen Änderungen, die noch nicht übertragen wurden) (remote Branch)

Und beim Zusammenführen von lokalen Zweig werden Sie es mit allen Änderungen zusammenführen, die Sie lokal vorgenommen haben, die noch nicht auf Remote-Zweig verschoben wurden, aber ohne alle Remote-Änderungen, die von anderen Entwicklern angewendet wurden. aber das ist vielleicht noch nicht in Ihrer lokalen Filiale.

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

Stellen Sie sich diese Ihre lokalen und Remote-Niederlassungen sind, haben Sie Änderungen zweimal zur Filiale verpflichtet und jemand hat 5 Commits hinzugefügt und geschoben Repo, so dass Sie noch nicht die mit 5 auf Ihrer lokalen Niederlassung haben.

Verwandte Themen