Git-клон буде поводитися як копіювання віддаленої поточної робочої гілки в локальну.
Чи можна якось самостійно клонувати конкретну гілку без перемикання гілок на віддаленому сховищі?
git clone -b <branch> <remote_repo>
Приклад:
git clone -b my-branch [email protected]:user/myproject.git
У Git'і 1.7.10 і пізніших версій додайте --single-branch
, щоб запобігти вилученню всіх гілок. Приклад, з гілкою OpenCV 2.4:
git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git
git clone --single-branch --branch <branchname> <remote-repo>
Опція --single-branch
дійсна, починаючи з версії 1.7.10 і пізніше.
Будь ласка, зверніться також до іншої відповіді, якій багато людей надають перевагу.
Можливо, ви також захочете переконатися, що розумієте різницю. А різниця полягає у тому, що за допомогою команди git clone --branch <branchname> url
ви отримаєте усі гілки і перевірите одну з них. Це може, наприклад, означати, що у вашому сховищі є гілка документації або вікі-гілка розміром 5 кБ та гілка даних розміром 5 ГБ. І щоразу, коли ви захочете відредагувати головну сторінку, вам доведеться клонувати 5 ГБ даних.
Знову ж таки, це не означає, що "git clone --branch" не є способом досягти цього, просто це не завжди те, чого ви хочете досягти, коли запитуєте про клонування конкретної гілки.
На момент написання оригінальної відповіді, наведеної нижче, git не мав опції "однієї гілки", але давайте збережемо її для повного задоволення розлючених бджіл.
Відповідь, яку так не люблять копіпастери, була такою:
git init
git remote add -t refspec remotename host:/dir.git
git fetch
Створіть гілку в локальній системі з такою назвою, наприклад, припустимо, ви хочете отримати гілку з назвою "гілка-05142011".
`git branch branch-05142011 origin/branch-05142011
Це дасть вам повідомлення на кшталт - "Гілка branch-05142011 налаштована для відстеження віддаленої гілки branch-05142011 від origin."
Тепер просто перевірте гілку, як показано нижче, і у вас з'явиться код
git checkout branch-05142011