🚀 Tecnologias Utilizadas


🛠️ Comandos Git Essenciais

Configuração Inicial

  • Configurar nome de usuário e email:
    git config --global user.name "Seu Nome"
    git config --global user.email "seu.email@example.com"

Gerenciamento de Repositórios

  • Criar um novo repositório:

    git init
  • Clonar um repositório existente:

    git clone <url-do-repositorio>

Controle de Versão

  • Verificar o status dos arquivos:

    git status
  • Adicionar arquivos para a área de stage:

    git add <nome-do-arquivo>
    git add .
  • Fazer commit das alterações:

    git commit -m "Mensagem descritiva do commit"
  • Visualizar o histórico de commits:

    git log

Gerenciamento de Branches

  • Criar uma nova branch:

    git branch <nome-da-branch>
  • Mudar para outra branch:

    git checkout <nome-da-branch>
  • Criar e mudar para uma nova branch:

    git checkout -b <nome-da-branch>
  • Mesclar uma branch com a branch atual:

    git merge <nome-da-branch>
  • Remover uma branch local:

    git branch -d <nome-da-branch>

Repositórios Remotos

  • Verificar repositórios remotos:

    git remote -v
  • Adicionar um repositório remoto:

    git remote add origin <url-do-repositorio>
  • Enviar commits para o repositório remoto:

    git push origin <nome-da-branch>
  • Atualizar o repositório local com mudanças do remoto:

    git pull origin <nome-da-branch>

Revertendo e Desfazendo Alterações

  • Reverter mudanças locais:

    git checkout -- <nome-do-arquivo>
  • Desfazer um commit específico (mantendo mudanças):

    git reset --soft <id-do-commit>
  • Desfazer um commit específico (descartando mudanças):

    git reset --hard <id-do-commit>
  • Restaurar para o último commit:

    git restore .
    git checkout -- .

Tags e Releases

  • Criar uma tag:

    git tag <nome>
  • Enviar uma tag para o repositório remoto:

    git push origin <nome-da-tag>
  • Remover uma tag:

    git tag -d <nome>
    git push origin --delete <nome-da-tag>
  • Criar uma tag anotada com mensagem:

    git tag -a <nome> -m "Mensagem da tag"

Cherry-Picking

  • Reaproveitar commits de uma branch em outra:
    git cherry-pick <hash-do-commit>

Blame

  • Achar o autor de uma linha específica (use com cuidado):
    git blame <arquivo>

Submódulos no Git

Submódulos permitem incluir um repositório Git dentro de outro como um subdiretório. Isso é útil quando você deseja usar um projeto externo dentro do seu projeto, mantendo a habilidade de atualizá-lo separadamente.

Comandos Relacionados a Submódulos

  • Adicionar um submódulo:

    git submodule add <url-do-repositorio> <caminho-opcional>
  • Inicializar submódulos em um repositório clonado:

    git submodule update --init --recursive
  • Atualizar submódulos para o commit mais recente:

    git submodule update --remote
  • Remover um submódulo:

    git rm --cached <caminho-do-submodulo>
    rm -rf <caminho-do-submodulo>
  • Alterar a URL de um submódulo:

    git config --file=.gitmodules submodule.<submodulo>.url <nova-url>
    git submodule sync <submodulo>
    git submodule update --init --recursive

Caso de Uso: Corrigindo Referências de Commits em Submódulos

  1. Navegue até o diretório do submódulo:

    cd <caminho-do-submodulo>
  2. Verifique o histórico do submódulo:

    git log --oneline
  3. Resetar o submódulo para o commit correto:

    git checkout <hash-do-commit>
  4. Volte ao diretório raiz do projeto:

    cd ..
  5. Atualize o índice do repositório principal:

    git add <caminho-do-submodulo>
  6. Commitar a alteração:

    git commit -m "Atualiza submódulo para o commit correto"
  7. Push para o repositório remoto:

    git push origin <nome-da-branch>

Comandos Avançados do Git

  • Visualizar commits de forma resumida:

    git log --oneline
  • Exibir mudanças detalhadas entre commits:

    git log -p
  • Visualizar o histórico de commits como um gráfico:

    git log --graph
  • Customizar o formato de saída do log:

    git log --format="%H %an"
  • Verificar diferenças entre commits específicos:

    git diff <commit-antigo>..<commit-novo>