it-swarm.com.de

git: Zweig wechseln ohne Kopf abzunehmen

Ich habe ein Repository für Github mit einem Hauptzweig (Master) und einem Zweig für experimentelle Arbeiten. Ich habe ein paar Verpflichtungen eingegangen und mich an die Experimentierabteilung gewandt, und alles war in Ordnung.

Jetzt versuche ich auf einem anderen Computer, mein Repository zu klonen (git clone repository ) und dann zum experimentellen Zweig zu wechseln (git checkout branchname ) aber jedes Mal, wenn ich das tue, löst sich mein Kopf und ich kann meine Änderungen nicht pushen. Was mache ich falsch? Ich habe das Gefühl, dass ich irgendwo ein grundlegendes Git-Konzept vermisse, aber das Lesen von zufälligen Git-Manpages gibt mir keine Anhaltspunkte.

Es tut mir leid, wenn ich ein Idiot bin, aber ich kann in den Dokumenten nichts finden, was mir hilft, meinen Kopf wieder zu befestigen.

EDIT

Das Konzept eines Tracking-Zweigs hat mir gefehlt. Jetzt, wo ich dieses Konzept verstehe, ist alles klar. Persönlich finde ich die git branch --track Syntax ist viel intuitiver als git checkout -b branch-name Origin/branch-name.

Danke für die Hilfe!

94
Dana Robinson
# first time: make Origin/branchname locally available as localname
git checkout -b localname Origin/branchname 

# othertimes 
git checkout localname 

git Push Origin

Der Einfachheit halber können Sie für localname und branchname dieselbe Zeichenfolge verwenden
Beim Auschecken Origin/branchname Sie haben nicht wirklich eine Filiale überprüft. Origin/branchname ist ein "entfernter" Name, mit dem Sie eine Liste erhalten können

branch -a 

Wenn Sie Farben aktiviert haben, haben lokale Zweige eine Farbe und entfernte eine andere.

Sie müssen zuerst eine Zweigstelle lokal verfolgen, um zu dieser wechseln und daran arbeiten zu können.

106
Kent Fredric
git clone [email protected]:abc/def.git
cd def

Erstellen Sie jetzt einen Verfolgungszweig:

git branch --track experimental Origin/experimental
git checkout experimental

Nachdem Sie dort gearbeitet haben, drücken Sie einfach auf github by

git Push
16

Um die Antwort von Kent zu erweitern: Nachdem Sie Ihren Klon ausgeführt haben, ist der einzige Zweig, den Sie haben (Remotes zählen nicht), derjenige, der in dem Repository aktiv war, aus dem Sie geklont haben - in Ihrem Fall master.

Zunächst möchten Sie einen neuen Zweig erstellen, um den Remote-Experimentierzweig zu verfolgen:

$ git branch experimental Origin/experimental

und dann schau es dir an:

$ git checkout experimental

Kent ist jedoch richtig - diese beiden Befehle können kombiniert werden

$ git checkout -b experimental Origin/experimental
11
Pat Notz

Mit Git 2.23 (August 2019) würden Sie das git switch Befehl

Wenn Sie eine Zweigstelle mit demselben Namen haben, wird diese automatisch nachverfolgt:

$ git switch new-topic
Branch 'new-topic' set up to track remote branch 'new-topic' from 'Origin'
Switched to a new branch 'new-topic'
0
VonC