Chapters ▾ 2nd Edition

A3.5 Appendix C: Comandos do Git - Compartilhando e Atualizando Projetos

Compartilhando e Atualizando Projetos

Não há muitos comandos do Git que acessam a rede; quase todos operam no banco de dados local. Quando você estiver pronto para compartilhar seu trabalho ou obter alterações de outro local, há alguns comandos que lidam com repositórios remotos.

git fetch

O comando git fetch se comunica com um repositório remoto, busca todas as informações presentes nele que ainda não estão no repositório atual e as armazena no banco de dados local.

Vemos esse comando pela primeira vez em Buscando (fetching) e Extraindo (pulling) de Seus Remotos e encontramos outros exemplos de seu uso em Branches Remotos (Remote Branches).

Também o usamos em vários exemplos de Contribuindo com um Projeto.

Em Refs de Pull Request, nós o usamos para buscar uma única referência específica fora do namespace padrão; em Empacotando (Bundling), vemos como fazer fetch a partir de um bundle.

Em Refspec, configuramos refspecs altamente personalizados para fazer git fetch se comportar de maneira um pouco diferente do padrão.

git pull

O comando git pull é basicamente uma combinação de git fetch e git merge: o Git faz fetch do remote especificado e tenta mesclar imediatamente o resultado no branch atual.

Nós o apresentamos rapidamente em Buscando (fetching) e Extraindo (pulling) de Seus Remotos e mostramos como ver o que será mesclado ao executá-lo em Inspecionando um Remoto.

Em Rebase Quando Você Fizer Rebase, também vemos como usá-lo para ajudar com dificuldades de rebase.

Em Fazendo Checkout de Branches Remotos, mostramos como usá-lo com uma URL para obter alterações de forma pontual.

Por fim, em Assinando Commits, mencionamos brevemente que você pode usar a opção --verify-signatures para verificar se os commits obtidos por pull foram assinados com GPG.

git push

O comando git push é usado para se comunicar com outro repositório, calcular o que existe no banco de dados local e não existe no remoto e então enviar a diferença ao outro repositório. Ele exige acesso de gravação ao outro repositório e, por isso, normalmente requer algum tipo de autenticação.

Vemos o comando git push pela primeira vez em Enviando (pushing) para seus Remotos. Ali abordamos os fundamentos de fazer push de um branch para um repositório remoto. Em Enviando (Pushing), aprofundamos um pouco o push de branches específicos e, em Branches de Rastreamento (Tracking Branches), vemos como configurar branches de rastreamento para fazer push automaticamente. Em Excluindo Branches Remotos, usamos a flag --delete para excluir um branch no servidor com git push.

Ao longo de Contribuindo com um Projeto, vemos vários exemplos de uso de git push para compartilhar trabalho em branches por meio de vários remotes.

Em Compartilhando Tags, vemos como usá-lo com a opção --tags para compartilhar as tags que você criou.

Em Publicando Modificações do Submódulo, usamos a opção --recurse-submodules para verificar se todo o trabalho dos submódulos foi publicado antes de fazer push do superprojeto, o que pode ser muito útil ao usar submódulos.

Em Outros Hooks de Cliente, falamos brevemente sobre o hook pre-push, um script que podemos configurar para ser executado antes da conclusão de um push e verificar se ele deve ser permitido.

Por fim, em Submetendo Refspecs (Pushing), vemos como fazer push com um refspec completo em vez dos atalhos gerais usados normalmente. Isso permite especificar com muita precisão qual trabalho você deseja compartilhar.

git remote

O comando git remote é uma ferramenta para gerenciar seu registro de repositórios remotos. Ele permite salvar URLs longas com nomes curtos, como “origin”, para que você não precise digitá-las o tempo todo. Você pode ter vários desses registros, e o comando git remote é usado para adicioná-los, alterá-los e excluí-los.

Esse comando é abordado em detalhes em Trabalhando com Repositórios Remotos, incluindo como listar, adicionar, remover e renomear remotes.

Ele também é usado em quase todos os capítulos seguintes do livro, mas sempre no formato padrão git remote add <name> <url>.

git archive

O comando git archive é usado para criar um arquivo contendo um snapshot específico do projeto.

Em Preparando um Lançamento (Release), usamos git archive para criar um tarball de um projeto a ser compartilhado.

git submodule

O comando git submodule é usado para gerenciar repositórios externos dentro de um repositório comum. Eles podem conter bibliotecas ou outros tipos de recursos compartilhados. O comando submodule possui vários subcomandos (add, update, sync etc.) para gerenciar esses recursos.

Esse comando só é mencionado e inteiramente abordado em Submódulos.