Hoe kloon ik een specifieke Git branch?

Git-kloon zal zich gedragen door de huidige werkende vertakking op afstand naar lokaal te kopiëren.

Is er een manier om zelf een specifieke vertakking te klonen zonder van vertakking te wisselen in de externe repository?


Antwoord 1, autoriteit 100%

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

De optie --single-branchis geldig vanaf versie 1.7.10en hoger.

Zie ook het andere antwoordwaar veel mensen de voorkeur aan geven.

Misschien wil je er ook voor zorgen dat je het verschil begrijpt. En het verschil is: door git clone --branch <branchname> urlje haalt allebranches op en checkt er één uit. Dat kan bijvoorbeeld betekenen dat uw repository een documentatie- of wikitak van 5 kB en een datatak van 5 GB heeft. En wanneer u uw voorpagina wilt bewerken, kunt u uiteindelijk 5 GB aan gegevens klonen.

Nogmaals, dat wil niet zeggen dat git clone --branchniet de manier is om dat te bereiken, het is alleen dat het niet altijdis wat je wilt bereiken, wanneer je vraagt over het klonen van een specifieke branch.


Antwoord 2, autoriteit 97%

git clone -b <branch> <remote_repo>

Voorbeeld:

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

Met Git 1.7.10 en hoger, voeg --single-branchtoe om te voorkomen dat alle branches worden opgehaald. Voorbeeld, met OpenCV 2.4-tak:

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

Antwoord 3, autoriteit 15%

Hier is een heel eenvoudige manier om het te doen 🙂

Kloon de repository

git clone <repository_url>

Alle vestigingen weergeven

git branch -a 

Bekijk het filiaal dat u zoekt

git checkout <name_of_branch>

Antwoord 4, autoriteit 12%

Een vertakking klonen zonderandere vertakkingen op te halen:

mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f origin $REMOTE_REPO
git checkout $BRANCH

Antwoord 5, autoriteit 6%

git checkout -b <branch-name> <origin/branch_name>

bijvoorbeeld in mijn geval:

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

Dus om een nieuw filiaal aan te maken op basis van mijn enum-account-nummer-filiaal doe ik:

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

Nadat je op Return hebt gedrukt, gebeurt het volgende:

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

Antwoord 6, autoriteit 2%

Maak een vertakking op het lokale systeem met die naam. bijv. stel dat je de branch met de naam branch-05142011

wilt krijgen

git branch branch-05142011 origin/branch-05142011

Je krijgt een bericht:

$ git checkout --track origin/branch-05142011
Branch branch-05142011 set up to track remote branch refs/remotes/origin/branch-05142011.
Switched to a new branch "branch-05142011"

Kijk nu gewoon naar het filiaal zoals hieronder en je hebt de code

git checkout branch-05142011

Antwoord 7

git --branch <branchname> <url>

Maar bash-voltooiing krijgt deze sleutel niet: --branch

Other episodes