Comandos Essenciais do Git para Gerenciamento de Código

A configuração global do Git é o primiero passo para etsabelecer sua identidade no sistema de controle de versão.

git config --global user.name "SeuNome"
git config --global user.email "seu@email.com"

Gerenciamento de Repositórios Locais

Inicializar um novo repositório local é uma operação simples que estabelece a estrutura de versionamento no diretório atual.

git init

Clonar um repositório existente cria uma cópia completa incluindo todo o histórico.

git clone url_do_repositorio
cd nome_do_projeto

Trabalhando com a Área de Preparação

O processo de preparação de alterações (staging) é fundamental no fluxo de trabalho do Git. A área de preparação atua como um buffer intermediário onde as modificações são organizadas antes de serem efetivamente gravadas no histórico.

Adicionar arquivos específicos à preparação:

git add arquivo1.txt arquivo2.java

Para adicionar recursivamente todos os arquivos em um diretório:

git add diretorio/

O comando git add . deve ser utilizado com cautela, pois ele prepara todas as alterações no diretório de trabalho atual.

Visualizar o que foi preparado para o próximo commit:

git diff --staged

Remover um arquivo da preparação mantendo-o no diretório de trabalho:

git rm --cached nome_do_arquivo

Gravando Alterações no Histórico

Após preparar as alterações desejadas, o commit as registra permanentemente no histórico do repositório.

git commit -m "Descrição clara das alterações"

Para incorporar todas as alterações em arquivos já rastreados automaticamente na preparação e realizar o commit:

git commit -a -m "Descrição"

Modificar o último commit (incluindo adicionar esquecimentos ou alterar a mensagem):

git add arquivo_esquecido.txt
git commit --amend

Monitorando o Estado do Projeto

A inspeção constante do estado do diretório de trabalho e da área de preparação é crucial.

git status

A saída indica:

  • Untracked files: Arquivos novos não rastreados pelo Git.
  • Changes to be committed: Alterações preparadas (staged) para o próximo commit.
  • Changes not staged for commit: Modificações em arquivos rasrteados ainda não preparadas.

A versão concisa (git status -s) utiliza códigos como 'M' para modificado e 'A' para adicionado.

Exibir um histórico detalhado dos commits:

git log --oneline --graph --all --decorate

Para ver as diferenças introduzidas por um commit específico:

git show hash_do_commit

Desfazendo Alterações

Descartar modificações no diretório de trabalho em arquivos já rastreados, revertendo-os para o estado da última preparação ou commit:

git checkout -- nome_do_arquivo

Desfazer a preparação (unstage) de um arquivo, movendo-o de volta para o diretório de trabalho como modificado:

git reset HEAD nome_do_arquivo

Reverter o repositório inteiro para um estado anterior específico:

git reset --hard hash_do_commit

Organização com Branches

Criar uma nova branch e mudar para ela:

git checkout -b nome_da_nova_branch

Listar todas as branches locais e remotas:

git branch -a

Para combinar o trabalho de uma branch no histórico atual:

git checkout main
git merge nome_da_branch_para_mesclar

Quando ocorrem conflitos durante uma mesclagem, é necessário editá-los manualmente nos arquivos indicados, e depois preparar os arquivos resolvidos antes de finalizar a mesclagem.

git add arquivo_com_conflito.txt
git commit -m "Resolve conflito entre branch X e Y"

Colaboração via Repositórios Remotos

Adicionar um repositório remoto:

git remote add nome_remoto url_do_repositorio

Obter alterações de um remoto (download sem integração):

git fetch nome_remoto

Enviar commits locais para o repositório remoto:

git push nome_remoto nome_da_branch

Para sincronizar as branches locais de acompanhamento (tracking) com as remotas:

git branch -u nome_remoto/nome_da_branch

Baixar e integrar alterações do remoto na branch atual (equivalente a git fetch seguido de git merge):

git pull nome_remoto nome_da_branch

Trabalhando com Tags

Criar uma tag anotada para marcar um ponto importante, como uma versão:

git tag -a v1.0 -m "Versão 1.0 estável"

Compartilhar uma tag específica com o repositório remoto:

git push nome_remoto v1.0

Enviar todas as tags para o remoto:

git push nome_remoto --tags

Tags: Git controle-de-versao git-bash branching merging

Publicado em 6-16 03:47 por Thomas