2017-01-16 3 views
1

Ich habe ein Problem mit GIT (Version 1.8.5.6) in Kombination mit Versteck. Ich habe auf meinem Entwicklungssystem mit dem Befehl lokale Niederlassungen erstelltGit Branch ist kein Remote Branch in Stash

git checkout -b <my new branch> 

Schließlich schob ich meinen neuen Zweig an den Remote-Stash-Server:

git push -u origin <my new branch> 

Jetzt bin ich nicht in der Lage meine Niederlassung zur Kasse auf mein Testsystem, weil die Zweige in Stash keine entfernten Zweige sind. Wenn ich die folgenden Befehle ausführen, Ich sehe nicht alle Zweige:

git branch -a 

oder

git branch -r 

Im Ergebnis meine Zweige in Stash nicht als Remote-Niederlassungen erstellt. Jetzt habe ich zwei Fragen. Wie kommt es, dass meine Filialen keine entfernten Filialen sind?

Und

Ist es möglich, die Zweige zu ändern und sie an entfernte diejenigen konvertieren?

Hier sind einige weitere Informationen:

git remote show 
--> origin 
git ls-remote 
--> shows all branches including that ones I have pushed from my dev system. 

Vielen Dank für Ihre Empfehlung,

freundlichen Grüßen Jörn

+0

OK, ich denke, ich habe das Problem selbst gelöst. Mein lokales Repository war in gewisser Weise beschädigt. Ich habe meinen lokalen Repo einschließlich des .git-Verzeichnisses gelöscht. Danach habe ich das Remote-Repository geklont. Im Folgenden konnte ich den neuesten Zweig vom Stash-Server auschecken. – soa

Antwort

0

Git ist (meist) ein Offline-Tool. Ihr Testsystem hat keine Kenntnis vom neu erstellten Zweig auf der Fernbedienung, bis es die Fernbedienung kontaktiert. Ihre git ls-remote macht das und sieht somit den neuen Zweig.

Sie können git fetch --all Ihren lokalen Git wissen über alle Tags und Zweige, die upstream existieren.

Durch erneutes Klonen Ihres Repository haben Sie das gleiche getan: Laden Sie alle Remote-Tags und Zweige herunter, aber Sie haben alle Objekte, die Sie bereits hatten, erneut heruntergeladen.

Das Gegenteil ist jedoch nicht wahr: git fetch --all entfernt keine Zweige, die nicht mehr stromaufwärts existieren. Dafür benötigen Sie git remote prune origin.