it-swarm.com.de

Wie klone ich einen bestimmten Git-Zweig?

Git-Klon verhält sich beim Kopieren des aktuellen Remote-Arbeitszweigs in den lokalen Zweig.

Gibt es eine Möglichkeit, einen bestimmten Zweig selbst zu klonen, ohne den Zweig im Remote-Repository zu wechseln?

2653
Scud
git clone --single-branch --branch <branchname> <remote-repo>

Die Option --single-branch ist ab Version 1.7.1 und höher gültig.

Bitte beachten Sie auch die andere Antwort , die viele Leute bevorzugen.

Vielleicht möchten Sie auch sicherstellen, dass Sie den Unterschied verstehen. Und der Unterschied ist: Wenn Sie git clone --branch <branchname> url aufrufen, rufen Sie alle Zweige ab und checken einen aus. Dies kann zum Beispiel bedeuten, dass Ihr Repository einen 5-KB-Dokumentations- oder Wiki-Zweig und einen 5-GB-Daten-Zweig hat. Und wann immer Sie Ihre Startseite bearbeiten möchten, klonen Sie möglicherweise 5 GB Daten.

Das heißt nicht, dass git clone --branch nicht der Weg ist, dies zu erreichen. Es ist nur so, dass es nicht immer das ist, was Sie erreichen wollen. wenn Sie nach dem Klonen eines bestimmten Zweigs fragen.

Zum Zeitpunkt des Schreibens der ursprünglichen Antwort unten hatte git keine Option --single-branch, aber lassen Sie es uns für die volle Zufriedenheit der wütenden Bienen aufbewahren.

Die Antwort, die Copypaster so sehr ablehnten, lautete wie folgt:

git init
git remote add -t refspec remotename Host:/dir.git
git fetch
git clone -b <branch> <remote_repo>

Beispiel:

git clone -b my-branch [email protected]:user/myproject.git

Fügen Sie ab Git 1.7.10 --single-branch hinzu, um das Abrufen aller Zweige zu verhindern. Beispiel mit OpenCV 2.4 Branch:

git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git
7403

Hier ist ein wirklich einfacher Weg, es zu tun :)

Klonen Sie das Repository

git clone <repository_url>

Alle Branchen auflisten

git branch -a 

Überprüfen Sie die gewünschte Filiale

git checkout <name_of_branch>
247
superlogical

So klonen Sie einen Zweig ohne andere Zweige holen:

mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f Origin $REMOTE_REPO
git checkout $BRANCH
239
Edmar Miyake
git checkout -b <branch-name> <Origin/branch_name>

in meinem Fall zum Beispiel:

 git branch -a
* master
  Origin/HEAD
  Origin/enum-account-number
  Origin/master
  Origin/rel_table_play
  Origin/sugarfield_customer_number_show_c

m also einen neuen Zweig zu erstellen, der auf meinem Enum-Account-Nummer-Zweig basiert, mache ich:

git checkout -b enum-account-number Origin/enum-account-number

Nachdem Sie die Eingabetaste gedrückt haben, passiert Folgendes:

Branch enum-account-number set up to track remote branch refs/remotes/Origin/enum-account-number.
Switched to a new branch "enum-account-number

"

90
dkinzer

Erstellen Sie auf dem lokalen System einen Zweig mit diesem Namen. z.B. Angenommen, Sie möchten den Zweig mit dem Namen "branch-05142011" erhalten

git branch branch-05142011 Origin/branch-05142011

Sie erhalten eine Meldung wie: "Branch Branch-05142011 wurde so eingerichtet, dass Remote Branch Branch-05142011 von Origin verfolgt wird."

Jetzt checkt einfach den Zweig wie unten und ihr habt den Code -
git checkout branch-05142011

24
PlanetUnknown
git --branch <branchname> <url>

Aber die Bash-Vervollständigung erhält diesen Schlüssel nicht: --branch

Genießen.

16
savgur