Como faço para clonar um ramo específico de Git?

Git clone irá se comportar copiando o ramo de trabalho remoto atual para o local.

Existe alguma forma de clonar um ramo específico por mim mesmo sem trocar de ramo no repositório remoto?

git clone -b  

Exemplo:

git clone -b my-branch git@github.com:user/myproject.git

Com Git 1.7.10 e posteriores, adicione `--single-branch' para evitar o 'fetching' de todos os ramos. Exemplo, com o ramo OpenCV 2.4:

git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git
Comentários (10)
Solução
git clone --single-branch --branch  

A opção `--single-branch' é válida a partir da versão 1.7.10 e posterior.

Por favor veja também a outra resposta que muitas pessoas preferem.

Você também pode querer ter certeza de entender a diferença. E a diferença é: ao invocar git clone --branch url você está pegando todas as filiais e checando uma. Isso pode, por exemplo, significar que o seu repositório tem uma documentação 5kB ou ramo wiki e um ramo de dados de 5GB. E sempre que você quiser editar sua frontpage, você pode acabar clonando 5GB de dados.

Mais uma vez, isso não quer dizer que "clonar um ramo específico" não é a maneira de conseguir isso, só que não é sempre o que você quer realizar, quando você está perguntando sobre clonar um ramo específico.

No momento de escrever a resposta original abaixo, o git não tinha a opção de "um único ramo", mas vamos preservá-la para a plena satisfação das abelhas zangadas.

A resposta que os co-pastas não gostaram tanto foi esta:

git init
git remote add -t refspec remotename host:/dir.git
git fetch
Comentários (3)

Crie uma filial no sistema local com esse nome, por exemplo, diga que deseja que a filial se chame "filial-05142011"

ramo git filial-05142011 origem/filial-05142011

Ele lhe dará uma mensagem como - "Branch branch-05142011 set up to track remote branch-05142011 from origin".

Agora é só verificar o ramo como abaixo e você tem o código - "branch-05142011" de checkout

Comentários (5)