Equipes de desenvolvedores e mantenedores de software open-source geralmente gerenciam seus projetos através do Git, um sistema distribuído de controle de versão que suporta colaboração.
Este artigo no estilo de Guia de Consulta Rápida fornece uma referência de comandos que são úteis para o trabalho e colaboração em um repositório Git. Para instalar e configurar o Git, certifique-se de ler “How To Contribute to Open Source: Getting Started with Git.”
Como utilizar esse guia:
Este guia está no formato de Guia de Consulta Rápida com fragmentos de linha de comando autocontidos.
Pule para qualquer seção que seja relevante para a tarefa que você está tentando completar.
Quando você vir texto destacado nos comandos deste guia, tenha em mente que este texto deve se referir aos commits e arquivos em seu próprio repositório.
Verifique a versão do Git com o seguinte comando, que irá também confirmar que o git está instalado.
Você pode inicializar seu diretório de trabalho atual como um repositório Git com o init
.
Para copiar um repositório Git existente hospedado remotamente, você irá utilizar git clone
com a URL do repositório ou a localização do servidor (no último caso você irá usar ssh
).
Mostrar o repositório remoto do seu diretório Git atual.
Para uma saída mais detalhada, use a flag -v
.
Adicionar o Git upstream, que pode ser uma URL ou pode estar hospedado em um servidor (no último caso, conecte com ssh
).
Quando você modificou um arquivo e o marcou para ir no próximo commit, ele é considerado um arquivo preparado ou staged.
Verifique o status do seu repositório Git, incluindo arquivos adicionados que não estão como staged, e arquivos que estão como staged.
Para colocar como staged os arquivos modificados, utilize o comando add
, que você pode executar diversas vezes antes de fazer um commit. Se você fizer alterações subsequentes que queira ver incluídas no próximo commit, você deve exwcutar add
novamente.
Você pode especificar o arquivo exato com o add
.
Com o .
você pode adicionar todos os arquivos no diretório atual incluindo arquivos que começam com um .
.
Você pode remover um arquivo da área de staging enquanto mantém as alterações no seu diretório de trabalho com reset
.
Um vez que você tenha colocado no stage a suas atualizações, você está pronto para fazer o commit delas, que irá gravar as alterações que você fez no repositório.
Para fazer commit dos arquivos em stage, você irá executar o comando commit
com sua mensagem de confirmação significativa para que você possa rastrear os commits.
Você pode condensar o staging de todos os arquivos rastreados fazendo o commit deles em uma única etapa.
Se você precisar modificar a sua mensagem de commit, você pode fazer isto com a flag --amend
.
Uma branch ou ramificação é um ponteiro móvel para um dos commits no repositório. Ele lhe permite isolar o trabalho e gerenciar o desenvolvimento de recursos e integrações. Você pode aprender mais sobre branches através da leitura da documentação do Git.
Listar todas as branches atuais com o comando branch
. Um aterisco (*
) irá aparecer próximo à sua branch ativa atualmente.
Criar uma nova branch. Você permanecerá na sua branch ativa até mudar para a nova.
Alternar para qualquer branch existente e fazer checkout em seu diretório de trabalho atual.
Você pode consolidar a criação e o checkout de uma nova branch utilizando a flag -b
.
Renomear a sua branch.
Mesclar o histórico da branch especificada àquela em que você está trabalhando atualmente.
Abortar a mesclagem, no caso de existirem conflitos.
Você também pode selecionar um commit particular para mesclar com cherry-pick
e com a string que referencia o commit específico.
Quando você tiver mesclado uma branch e não precisar mais dela, poderá excluí-la.
Se você não tiver mesclado uma branch com o master, mas tiver certeza de que deseja excluí-la, poderá forçar a exclusão da branch.
Para baixar alterações de outro repositório, tal como o upstream remoto, você irá usar o fetch
.
Mesclar os commits baixados.
Envie ou transmita seus commits na branch local para a branch do repositório remoto.
Busque e mescle quaisquer commits da branch remota de rastreamento.
Mostrar o histórico de commits para a branch ativa atualmente.
Mostrar os commits que alteraram um arquivo particular. Isso segue o arquivo, independentemente da renomeação do mesmo.
Mostrar os commits que estão em uma branch e não estão em outra. Isto irá mostrar os commits em a-branch
que não estão em b-branch
.
Observe os logs de referência (reflog
) para ver quando as dicas de branches e outras referências foram atualizadas pela última vez dentro do repositório.
Mostrar qualquer objeto no Git através da sua string de commit ou hash em um formato mais legível.
O comando git diff
mostra as alterações entre commits, branches, entre outras. Você pode ler mais detalhadamente sobre isso através da Documentação do Git.
Comparar arquivos modificados que estão na área de staging.
Exibe o diff do que está em a-branch mas não está em b-branch.
Mostrar o diff entre dois commits específicos.
Às vezes, você descobrirá que fez alterações em algum código, mas, antes de terminar, precisa começar a trabalhar em outra coisa. Você ainda não está pronto para fazer o commit das alterações que você fez até agora, mas não quer perder seu trabalho. O comando git stash
lhe permitirá salvar suas modificações locais e reverter para o diretório de trabalho que está alinhado com o commit mais recente do HEAD
.
Guarde (stash) seu trabalho atual.
Veja o que você tem guardado atualmente.
Seus rascunhos serão nomeados stash@{0}
, stash@{1}
, e assim por diante.
Mostrar informações sobre um rascunho em particular.
Para trazer os arquivos de um rascunho atual enquanto mantém o rascunho guardado, utilize apply
.
Se você quer trazer os arquivos de uma rascunho e não precisa mais do rascunho, utilize pop
.
Se você não precisar mais dos arquivos salvos em um determinado rascunho ou stash, você pode descartar o rascunho com drop
.
Se você tiver muitos rascunhos salvos e não precisar mais de nenhum deles, você pode utilizar clear
para removê-los.
Se você quiser manter arquivos em seu diretório local do Git, mas não quer fazer o commit deles no projeto, você pode adicionar esses arquivos ao seu arquvo .gitignore
para que não causem conflitos.
Utilize um editor de textos como o nano para adicionar arquivos ao arquivo .gitignore
.
Para ver exemplos de arquivos .gitignore
, você pode olhar o repositório de modelos .gitignore
do GitHub.
Um rebase nos permite mover as branches alterando o commit no qual elas são baseadas. Como o rebasing, você pode reescrever ou reformular os commits.
Você pode iniciar um rebase chamando o número de commits que você fez e que você quer fazer rebase (5
no caso abaixo).
Como alternativa, você pode fazer o rebase com base em uma determinada string de commit ou hash.
Depois de ter reescrito ou reformulado os commits, você pode concluir o rebase da sua branch em cima da versão mais recente do código upstream do projeto.
Para aprender mais sobre rabase e atualização, você pode ler How To Rebase and Update a Pull Request, que também é aplicável a qualquer tipo de commit.
Às vezes, inclusive após um rebase, você precisa redefinir sua árvore de trabalho. Você pode redefinir ou resetar para um commit específico e excluir todas as alterações com o seguinte comando.
Para forçar a enviar seu último commit conhecido e não conflitante para o repositório de origem, você precisará usar o --force
.
Atenção: Forçar o envio ou pushing para o master não é muito aprovado a menos que haja uma razão realmente importante para fazê-lo. Use isso com moderação ao trabalhar em seus próprios repositórios e evite fazer isso quando estiver colaborando.
Para remover arquivos e subdiretórios locais não rastreados do diretório Git para uma branch de trabalho limpa, você pode usar git clean
.
Se você precisar modificar seu repositório local para que ele pareça com o upstream master atual (isto é, quando há muitos conflitos), você pode executar um hard reset.
Nota: Executar este comando fará com que seu repositório local fique exatamente igual ao upstream. Todos os commits que você fez, mas que não foram enviados para o upstream, serão destruídos.
Este guia aborda alguns dos comandos mais comuns do Git que você pode usar ao gerenciar repositórios e colaborar em software.
Você pode aprender mais sobre software open-source e colaboração em nossa série de tutoriais Introduction to Open Source:
Existem muitos outros comandos e variações que você pode achar úteis como parte do seu trabalho com o Git. Para saber mais sobre todas as opções disponíveis, você pode executar o comando abaixo receber informações úteis:
Você também pode ler mais sobre o Git e ver a documentação dele no website oficial do Git.
Por Lisa Tagliaferri
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!