SmartGit Pull wirkt nicht wie erwartet

7

Ich habe ein Repository auf GitHub abgezweigt.

Ich habe dann meine Gabel in einen Ordner in meiner lokalen Entwicklungsumgebung über SmartGit geklont. Zusätzlich habe ich das Original-Repository als Remote hinzugefügt.

Nun hat das ursprüngliche Repository einige Dateien hinzugefügt und geändert. Ich würde diese gerne abrufen, damit ich auf dem neuesten Stand bin, bevor ich mit der Entwicklung fortfahre.

Ich drücke die Pull-Taste in SmartGit und wähle das Original-Repo im Dialog aus. SmartGit gibt mir das zurück:

%Vor%

Aber die hinzugefügten Dateien und Änderungen werden nicht zu meinem lokalen Repository hinzugefügt. Tun Sie dies manuell mit Git Bash - git pull original master funktioniert alles wie erwartet.

Warum zieht SmartGit nicht so, wie ich es erwarte?

    
Repox 08.05.2012, 09:02
quelle

4 Antworten

10

Bei Ziehen führt SmartGit einen "Git-Abruf" durch und anschließend Richten Sie den verfolgten Zweig neu ein. In Ihrem Fall verfolgt master origin/master , nicht lm/master . Sie haben jetzt folgende Auswahlmöglichkeiten, immer vorausgesetzt, Sie befinden sich in master :

(1) Konfigurieren Sie master so, dass lm/master anstelle von origin/master verfolgt wird: Rufen Sie Zweig | Zweigstellen-Manager auf, wählen Sie master , rufen Sie Nachverfolgten Zweig zurücksetzen auf Klicken Sie im Kontextmenü auf lm/master und rufen Sie Nachverfolgten Zweig festlegen auf. Jetzt wird lm/master bei jedem Ziehen zusammengeführt (oder rebasiert).

(2) Fügen Sie lm/master manuell zusammen: Rufen Sie Zweig | Zusammenführen auf und wählen Sie lm/master .

(3) Manuelles Rebasieren auf lm/master : invoke Branch|Rebase , wählen Sie HEAD für ausgewählte Commits und wählen auf der Graphseite lm / master .

    
mstrap 08.05.2012, 10:11
quelle
7

Was ich in SmartGit getan habe, war:

  • Remote > Add (wie du es getan hast). Ich rief meins upstream .
  • Wählen Sie im Zweigfenster Right click upstream > fetch more.. die Zweige aus. (In der Regel Master)
  • Im Zweigbereich Double click upstream > master . Dies fordert Sie auf, einen zweiten Zweig (normalerweise Master-2) zu erstellen. Ich habe das auch upstream genannt. Also habe ich einen Remote Repo namens Upstream und lokalen Zweig namens Upstream, der Upstream / Master verfolgt.
  • In der Verzweigung " Double click Local Branches > Master " gelangen Sie zurück zu Ihrer Master-Zweigstelle.

An dieser Stelle würde ich annehmen, dass Sie das Projekt erst vor wenigen Augenblicken abgezweigt haben, also wäre dieser nächste Schritt nicht sehr nützlich, aber wenn es zu einem späteren Zeitpunkt einige zusätzliche Commits geben wird, müssen Sie dies tun / p>

  • Remote > Pull und wählen Sie upstream . Wenn Sie auf den kleinen Abwärtspfeil drücken, sehen Sie, dass Sie NUR "weder zusammenführen noch umbuchen" können. Das ist gut.
  • Click fetch Damit können Sie das gesamte Protokoll sehen und was sich geändert hat.
  • Im Zweigbereich Right click Local Branches > upstream > Merge .
  • Fast-Forward , wenn du glaubst, dass du es kannst. (Meine bevorzugte Art).
  • oder Create Merge-Commit.

Von diesem Punkt an müssen Sie nur noch die letzten 5 Schritte machen. Die ersten Schritte wurden nur eingerichtet.

    
WORMSS 29.05.2013 09:41
quelle
3

Sie würden die neuen Dateien sehen, wenn der Upstream-Zweig Ihrer aktuellen lokalen Zweigstelle war " lm/master ".
Aber wenn Sie sich auf master befinden, ist sein Upstream-Zweig sicherlich standardmäßig " origin/master " (dh master Ihrer Verzweigung)

Wenn Sie die Dateien aus dem ursprünglichen Repo zusammenführen möchten, vervollständigen Sie Ihren Befehl mit einem

%Vor%

Oder in SmartGit fusionieren Sie von lm/master mit Ihrer aktuellen Zweigstelle.

    
VonC 08.05.2012 09:45
quelle
3

Wenn SmartGit Fetch auf jedem Pull ausführt,

Suchen Sie dann die Verzweigungen in der Menüleiste oder im Verzweigungsfenster aus der Anwendung.

Dann

ODER

Voila ... Viel Spaß

    
Samrat Saha 05.03.2014 06:32
quelle

Tags und Links