Chcę pobrać kod źródłowy z gałęzi master-next przy użyciu git zgodnie z opisem na wiki Xilinx .
Próbowałem tego:
#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
Nawet to się nie udało:
# 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
Polecenie, które działa, to:
git clone git://github.com/Xilinx/u-boot-xlnx.git
Ale skąd mam wiedzieć, że to rzeczywiście przyniesie gałąź master-next, a nie gałąź master ? Jak poprawnie pobrać konkretną gałąź za pomocą git?
Korzystam z RHEL 6, dostępnego za pośrednictwem PuTTY.
git checkout master-next
po klonowaniu.To polecenie powinno działać:
Powyższe polecenie pobiera tylko metadane ze zdalnego repozytorium, nie scala źródeł.
Jeśli chcesz pobrać i scalić źródła, polecenie powinno wyglądać następująco:
Uważaj na gałąź, w której wykonujesz polecenie scalania. Będzie to miejsce, w którym źródła zostaną połączone.
źródło
repozytoria git zawierają wszystkie gałęzie (ale skompresowane i tylko różnice stąd rzadko występują problemy z rozmiarem).
Dlatego możesz sklonować cały projekt po pomyślnym zakończeniu. Jest to standardowy sposób na uzyskanie repozytorium, nawet jeśli interesuje Cię tylko jeden oddział.
Struktura .git obejmie wtedy wszystkie gałęzie wykonane w tym repozytorium.
Aby użyć określonej gałęzi, wykonaj
git checkout [branch_name]
Jeśli gałąź istnieje, pliki zostaną udostępnione lokalnie (jako takie, bieżące pliki w katalogach projektu).git status
pokaże następnie, która gałąź jest bieżącą gałęzią, na przykład:Według Leiaza można sklonować określoną gałąź. W praktyce nigdy tego nie robiłem ani nie widziałem, żeby inni go używali. Po dalszych badaniach widzę, że jest stosunkowo nowy, dodany w git 1.7.10 (kwiecień 2012): opcja „git clone learn - single-branch”, aby ograniczyć klonowanie do jednej gałęzi (niespodzianka!); tagi, które nie wskazują historii oddziału, nie są pobierane. Na przykład:
Tutaj, dla mojej aplikacji „linker” sprawdzam oddział
v3.0.10
źródło