Qual é a diferença entre git clone
e git checkout
?
Qual é a diferença entre git clone
e git checkout
?
Respostas:
A página de manual do checkout: http://git-scm.com/docs/git-checkout
A página de manual do clone: http://git-scm.com/docs/git-clone
Para resumir, clone é para buscar repositórios que você não possui, o checkout é para alternar entre ramificações em um repositório que você já possui.
Nota: para aqueles que têm um histórico de SVN / CVS e são novos no Git, o equivalente git clone
em SVN / CVS é checkout
. A mesma formulação de termos diferentes é frequentemente confusa.
checkout
também pode ser usado para outras coisas, como sobrescrever um arquivo na sua cópia de trabalho por uma versão desse arquivo de outra revisão.
O clone git é buscar seus repositórios no servidor git remoto.
O git checkout consiste em verificar o status desejado do seu repositório (como ramificações ou arquivos específicos).
Por exemplo, você está atualmente no ramo principal e deseja mudar para o ramo de desenvolvimento.
git checkout develop_branch
Por exemplo, você deseja fazer o checkout para um status específico de um arquivo específico
git checkout commit_point_A -- <filename>
Aqui está uma boa referência para você aprender Git, permite entender muito mais facilmente.
git clone
também trabalha com repositórios locais.
Uma coisa a notar é a falta de qualquer "cópia" no git. Isso ocorre porque você já tem uma cópia completa no seu repositório local - o seu repositório local é um clone
do seu repositório upstream escolhido. Portanto, você tem efetivamente um pessoal checkout
de tudo , sem colocar algum 'bloqueio' nesses arquivos no repositório de referência.
O Git fornece os valores de hash SHA1 como o mecanismo para verificar se a cópia que você possui de uma árvore de arquivos / diretórios / commit / repo é exatamente a mesma usada por quem é capaz de declarar as coisas como "Mestre" dentro da hierarquia de confiança. Isso evita todos os 'bloqueios' que causam o sufocamento da maioria dos sistemas SCM (com os problemas comuns de cópias particulares, grandes fusões e nenhum controle ou gerenciamento real do código-fonte ;-)!
Simplesmente git checkout tem 2 usos
git checkout <existing_local_branch_name>
git checkout -b <new_feature_branch_name>
crie uma nova ramificação com o conteúdo da ramificação principal e mude para a ramificação recém-criadaVocê pode encontrar mais opções no site oficial
-b
opção é incrível, o que cria uma nova ramificação local e a verifica ao mesmo tempo em um único comando. Amei!
checkout
pode ser usado para muitos casos:
1º caso : alternar entre ramificação no repositório local Por exemplo:
git checkout exists_branch_to_switch
Você também pode criar uma nova ramificação e alternar neste caso com -b
git checkout -b new_branch_to_switch
2º caso : restaurar arquivo de x rev
git checkout rev file_to_restore
...