2012-04-04 20 views
4

Das ist mein Setup: Ich arbeite zu Hause und in der Schule und die Fernbedienung wird online gespeichert. Alle 3 Standorte haben drei Zweige namens Br1, Br2 und Br3. Nichts Besonderes, jeder Zweig an jedem Arbeitsplatz ist der gleiche. Mit anderen Worten, br1 at home, br1 at work und br1 at remote entsprechen alle demselben Zweig usw.Git: Ziehen aus der Ferne

Jetzt, wenn ich versuche, br2 zu Hause zu ziehen, bekomme ich eine Nachricht, dass ich angeben muss, welche Zweig muss ich mit verschmelzen. Ich weiß, was passiert und wie ich es korrigieren kann, aber ich kann nicht verstehen, warum es passiert. Verschmelzt git nicht mit einem Zweig gleichen Namens? Muss ich für jeden Zweig, den ich habe, Einträge in der Konfigurationsdatei erstellen?

Nebenbei, was ist der Unterschied zwischen git rm --cached und git reset --mixed?

+0

Was ist, wenn Sie zu den Remote-Repositorys schieben, vielleicht. –

+0

hast du zu hause br2 erstellt und es von zu hause ferngesteuert? – aschmid00

+0

@James Git Status berichtet, dass mein Arbeitsverzeichnis sauber ist und es nichts zu schieben gibt. Es bittet mich, die Fernänderungen mit git pull zusammenzufassen ... zurück zu Platz eins:/ – kshenoy

Antwort

2

ich denke, was passiert ist, dass Sie den Zweig lokal erstellt und schob es auf die Fernbedienung.
In diesem Fall hat der lokale Zweig keinen Upstream.

können Sie den Upstream-Set mit

git branch --set-upstream foo origin/foo 

-u

--set-Upstream

Für jeden Zweig, auf dem neuesten Stand ist oder erfolgreich gedrückt, fügen Upstream (Tracking) Referenz, verwendet von argument-less git-pull (1) und anderen Befehlen. Weitere Informationen finden Sie unter branch..merge in git-config (1).

+1

Beachten Sie, dass '--set-upstream 'eine relativ aktuelle Version von git benötigt (1.7, sieht aus wie) . Beachten Sie auch, dass es jetzt (nach 1.7.4?) Eine "--set-upstream" -Option während "push" gibt, d. H. Sie können drücken, um gleichzeitig einen Upstream-Ursprung zu erstellen und festzulegen. – torek

+0

ok, aber wieso hättest du nicht die neueste Git-Version? :) – aschmid00

+0

Sie würden denken ... Bei $ Arbeit habe ich oft die Steinmesser und Bärenfelle, einige der Maschinen haben Python 2.3 zum Beispiel. – torek

0

Sie müssen die Konfigurationsdateien nicht manuell bearbeiten. Ich würde empfehlen, den Zweig zu löschen und einen Tracking-Zweig von Grund auf neu zu überprüfen. Seien Sie vorsichtig, damit Sie nicht alle lokalen Änderungen, die gedrückt werden muss:

git branch -D br2 
git checkout --track origin/br2 

Wenn Sie Prüfung Remote-Niederlassungen mit --track sie wird immer Setup richtig beim Schieben und Ziehen.

+0

Magnus, ich habe es auf die gleiche Weise gelöst. Aber ich konnte nicht verstehen, warum ich dieses Problem überhaupt erst bekommen habe. Danke für den Tipp mit --track.Wusste das nicht :) – kshenoy

+0

Von 420 zu einem anderen: p – ralphtheninja

+0

@MagnusSkog mit der neuesten git müssen Sie nicht explizit eine Remote-Filiale verfolgen. Wenn Sie einen Zweig auschecken, verfolgt er automatisch den Remote-Zweig. – aschmid00

Verwandte Themen