Chci stáhnout zdrojový kód z pobočky master-next pomocí git, jak je popsáno v Xilinx wiki .
Zkoušel jsem to:
#git clone git://github.com/Xilinx/u-boot-xlnx/tree/master-next.git Initialized empty Git repository in /home/Hannan/master-next/.git/ fatal: remote error: Xilinx/u-boot-xlnx/tree/master-next is not a valid repository name Email [email protected] for help
I to se nezdařilo:
# git clone git://github.com/Xilinx/tree/master-next/u-boot-xlnx.git Initialized empty Git repository in /home/Hannan/u-boot-xlnx/.git/ fatal: remote error: Xilinx/tree/master-next/u-boot-xlnx is not a valid repository name Email [email protected] for help
Fungující příkaz je:
git clone git://github.com/Xilinx/u-boot-xlnx.git
Ale jak poznám, že to skutečně načte větev master-next a ne hlavní větev ? Jak mohu správně načíst konkrétní větev pomocí git?
Používám RHEL 6, přístupný přes PuTTY.
Odpovědět
Jak vám řekne chybová zpráva, git clone
očekává úložiště git. Takto můžete do cesty „přidat“ název větve. Viz větve v gitu .
Můžete klonovat jedna větev (a její historie): git clone <url> --branch <branch> --single-branch
Viz git help clone
.
Ale příkaz clone, který jste spustili, vám dal kopii celého úložiště, můžete vidět existující větve s git branch
a další podrobnosti o nich pomocí git show-branch
.
Přepněte na požadovanou větev pomocí git checkout branch-name
.
První kapitoly Kniha Pro Git (k dispozici online) obsahuje více podrobností o základních příkazech.
Komentáře
Odpovědět
Tento příkaz by měl fungovat:
$ git fetch origin [branch]
Výše uvedený příkaz načte pouze metadata ze vzdáleného úložiště, nikoli sloučit zdroje.
Chcete-li načíst a sloučit zdroje, bude příkaz:
$ git pull origin [branch]
Buďte opatrní s větví, kde provádíte příkaz sloučení. Bude to místo, kde jsou zdroje sloučeny.
Komentáře
- Vaše odpověď je technicky správná, ale myslím, že by jí mohla prospět gramatická kontrola / re- psaní.
- to funguje pěkně thx
odpověď
repozitáře git obsahují všechny větve ( ale komprimované a pouze rozdíly proto zřídka způsobují problém s velikostí).
Proto můžete klonovat celý projekt, jak jste úspěšně provedli. Toto je standardní způsob, jak získat úložiště, i když vás zajímá pouze jedna větev.
Struktura .git pak bude zahrnovat všechny větve provedené v daném úložišti.
Chcete-li použít konkrétní větev, proveďte git checkout [branch_name]
Pokud větev existuje, budou soubory zpřístupněny místně (právě tak i aktuální soubory v adresářích projektu).
git status
poté zobrazí, která větev je aktuální větev, například:
Podle Leiaza lze klonovat konkrétní větev. V praxi jsem to nikdy neudělal nebo jsem viděl, že to používají ostatní. Při dalším výzkumu vidím, že je to relativně nové, přidáno v git 1.7.10 (duben 2012): možnost „git clone learn –single-branch“ omezit klonování do jedné větve (překvapení!); značky, které nesměřují do historie větve, nebudou načteny. Například:
git clone -b master-next --single-branch git://github.com/Xilinx/
Zde pro svoji aplikaci „linker“ rezervuji větev v3.0.10
Komentáře
- Ani ' jsem to nikdy neudělal, vzpomněl jsem si, že jsem tuto možnost viděl. Myslím, že ' zřídka používané jako další větve jsou " levné " velikosti.
git checkout master-next
po klonování.