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?
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 .
Was ich in SmartGit getan habe, war:
Remote > Add
(wie du es getan hast). Ich rief meins upstream . Right click upstream > fetch more..
die Zweige aus. (In der Regel Master) 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. 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. Right click Local Branches > upstream > Merge
. Fast-Forward
, wenn du glaubst, dass du es kannst. (Meine bevorzugte Art). Create Merge-Commit.
Von diesem Punkt an müssen Sie nur noch die letzten 5 Schritte machen. Die ersten Schritte wurden nur eingerichtet.
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.
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ß