===== Exemplos do comando git ===== ==== Nível Básico ==== * **Clonar um repositório remoto:** - git clone https://github.com/usuario/repositorio.git - Faz uma cópia completa do repositório remoto `repositorio.git` no diretório atual. * **Inicializar um novo repositório local:** - git init - Inicializa um novo repositório Git no diretório atual. * **Adicionar arquivos ao repositório (staging area):** - git add arquivo.txt - Adiciona o arquivo `arquivo.txt` à área de stage para ser commitado. * **Fazer um commit com uma mensagem:** - git commit -m "Mensagem do commit" - Faz um commit das alterações adicionadas à área de stage com a mensagem "Mensagem do commit". * **Verificar o status do repositório:** - git status - Exibe o status atual do repositório, mostrando arquivos modificados e pendentes de commit. * **Visualizar o histórico de commits:** - git log - Exibe o histórico de commits do repositório, listando os commits mais recentes primeiro. ==== Nível Intermediário ==== * **Criar e trocar para uma nova branch:** - git checkout -b nova_branch - Cria uma nova branch chamada `nova_branch` e troca para ela. * **Mesclar uma branch ao branch principal:** - git checkout main
git merge nova_branch - Troca para a branch `main` e mescla as alterações da branch `nova_branch` com ela. * **Descartar alterações locais em um arquivo:** - git checkout -- arquivo.txt - Descarta as alterações locais no arquivo `arquivo.txt`, revertendo-o ao último commit. * **Reverter um commit anterior:** - git revert HEAD - Reverte o último commit no repositório, criando um novo commit que desfaz as alterações. * **Fazer um pull (baixar e mesclar) de um repositório remoto:** - git pull origin main - Baixa as últimas atualizações do branch `main` do repositório remoto `origin` e mescla-as com o branch local. * **Visualizar as diferenças entre o estado atual e o último commit:** - git diff - Exibe as mudanças feitas no repositório, comparando o estado atual com o último commit. * **Verificar os branches existentes e o branch atual:** - git branch - Exibe a lista de branches locais, destacando o branch ativo. * **Apagar uma branch local:** - git branch -d nome_branch - Remove a branch `nome_branch` do repositório local (somente se já foi mesclada). ==== Nível Avançado ==== * **Resetar um arquivo da área de stage:** - git reset arquivo.txt - Remove o arquivo `arquivo.txt` da área de stage, sem alterar seu conteúdo. * **Resetar um commit anterior (sem manter o histórico):** - git reset --hard HEAD~1 - Desfaz o último commit e também remove as alterações do histórico. * **Listar os commits em uma única linha:** - git log --oneline - Exibe o histórico de commits, mostrando cada commit em uma única linha. * **Fazer push (enviar) de uma branch local para o repositório remoto:** - git push origin nome_branch - Envia a branch `nome_branch` para o repositório remoto `origin`. * **Criar um repositório remoto e fazer o push inicial:** - git remote add origin https://github.com/usuario/repositorio.git
git push -u origin main - Adiciona o repositório remoto `origin` e faz o push do branch `main` para ele. * **Rebase de commits (reorganizar commits):** - git rebase main - Reorganiza os commits da branch atual em cima dos commits do branch `main`. * **Verificar as diferenças entre duas branches:** - git diff branch1..branch2 - Compara as alterações entre as branches `branch1` e `branch2`. * **Apagar uma branch remota:** - git push origin --delete nome_branch - Remove a branch `nome_branch` do repositório remoto. ==== Nível Especializado ==== * **Clonar um repositório de forma superficial (somente últimos commits):** - git clone --depth 1 https://github.com/usuario/repositorio.git - Faz um clone do repositório baixando apenas os últimos commits, reduzindo o tamanho do clone. * **Squash de múltiplos commits em um único:** - git rebase -i HEAD~3 - Combina os últimos três commits em um único commit durante o processo de rebase interativo. * **Criar e aplicar um patch a partir de um commit específico:** - git format-patch -1 HEAD
git apply patchfile.patch - Cria um arquivo patch a partir do último commit e aplica esse patch ao repositório local. * **Criar um tag para uma versão específica:** - git tag -a v1.0 -m "Versão 1.0" - Cria uma tag anotada `v1.0` para marcar o commit da versão 1.0. * **Fazer push de uma tag para o repositório remoto:** - git push origin v1.0 - Envia a tag `v1.0` para o repositório remoto. * **Verificar as estatísticas de contribuições ao repositório:** - git shortlog -s -n - Exibe um resumo das contribuições ao repositório, classificando por número de commits. * **Buscar alterações remotas sem mesclar automaticamente:** - git fetch origin - Baixa as alterações do repositório remoto `origin` sem mesclá-las automaticamente ao branch local. * **Resolver conflitos de merge manualmente:** - git mergetool - Abre a ferramenta de merge para resolver conflitos após uma tentativa de mesclagem com conflitos. * **Configurar um hook de pre-commit para automatizar verificações antes de cada commit:** - echo "./verifica_codigo.sh" > .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit - Configura um script que será executado automaticamente antes de cada commit, como uma verificação de estilo de código.