Jak sklonować konkretną gałąź Git? [duplikat]
To pytanie ma już odpowiedź tutaj:
- Jak sklonować pojedynczą gałąź w Git? 14 odpowiedzi
Git clone zachowuje się kopiując zdalną bieżącą działającą gałąź do lokalnej.
Czy Jest jakiś sposób na samodzielne sklonowanie konkretnej gałęzi bez przełączania gałęzi w zdalnym repozytorium?
7 answers
Zobacz także inną odpowiedź , którą preferuje Wiele osób.
Możesz również chcieć upewnić się, że rozumiesz różnicę, w przeciwieństwie do większości gniewnych komentatorów i downvoterów. A różnica jest taka: wywołując git clone -b branch url
pobierasz wszystkie gałęzie i sprawdzasz jedną. Może to na przykład oznaczać, że Twoje repozytorium ma gałąź dokumentacji 5kB lub wiki oraz gałąź danych 5GB. I zawsze, gdy chcesz edytować swoją stronę główną, może skończyć się klonowanie 5GB data.
Ponownie, to nie znaczy git clone -b
nie jest to sposób, aby to osiągnąć, po prostu nie jest to zawsze to, co chcesz osiągnąć, kiedy pytasz o klonowanie określonej gałęzi.
Odpowiedź, którą napisałbym dzisiaj, mając na uwadze dzisiejszy git, brzmiałaby
git clone --single-branch -b branch host:/dir.git
W momencie pisania oryginalnej Odpowiedzi poniżej, git nie miał opcji --single-branch
, ale zachowajmy ją dla pełnej satysfakcji gniewnych pszczół.
Odpowiedź tak bardzo nielubiana przez copypasterów była to:
git init
git remote add -t refspec remotename host:/dir.git
git fetch
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-29 11:02:17
git clone -b <branch> <remote_repo>
Przykład:
git clone -b my-branch [email protected]:user/myproject.git
Z Git 1.7.10 i nowszymi, dodaj --single-branch
aby zapobiec pobieraniu wszystkich gałęzi. Przykład, z gałęzią OpenCV 2.4:
git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-11 17:09:13
Aby sklonować gałąź Bez pobierania innych gałęzi:
mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f origin $REMOTE_REPO
git checkout $BRANCH
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-06 09:01:00
Oto naprawdę prosty sposób na to:)
Klon repozytorium
git clone <repository_url>
Lista wszystkich oddziałów
git branch -a
Sprawdź gałąź, którą chcesz
git checkout <name_of_branch>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-14 09:42:19
git checkout -b <branch-name> <origin/branch_name>
Na przykład w moim przypadku:
git branch -a
* master
origin/HEAD
origin/enum-account-number
origin/master
origin/rel_table_play
origin/sugarfield_customer_number_show_c
Aby utworzyć nowy oddział na podstawie mojego numeru enum-account-branch wykonuję:
git checkout -b enum-account-number origin/enum-account-number
Po naciśnięciu return następuje:
Branch enum-account-number set up to track remote branch refs/remotes/origin/enum-account-number.
Switched to a new branch "enum-account-number
"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-15 19:59:19
Utwórz gałąź w systemie lokalnym o tej nazwie. np. powiedz, że chcesz otrzymać gałąź o nazwie "gałąź-05142011"
git branch branch-05142011 origin/branch-05142011
Wyświetli komunikat w stylu - " Branch branch-05142011 ustawiony do śledzenia zdalnego branch branch-05142011 from origin."
Teraz wystarczy sprawdzić gałąź jak poniżej i masz kod -git checkout branch-05142011
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-15 19:20:32
git --branch <branchname> <url>
Ale Bash nie dostaje tego klucza: --branch
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-07 12:52:15