DEV Community

Cover image for Comandos GIT
Vitor Melo
Vitor Melo

Posted on

Comandos GIT

Estados no Git

  • Modificado (modified): Arquivos foram modificados, mas ainda não estão preparados para commit.
  • Preparado (staged/index): Arquivos estão prontos para serem comitados.
  • Consolidado (committed): Alterações foram salvas no repositório local.

Ajuda no Git

  • Ajuda Geral:
    • git help
  • Ajuda para um comando específico:
    • git help <comando>
    • Ex.: git help add, git help commit

Configurações do Git

Geral

As configurações do Git são armazenadas no arquivo .gitconfig, que pode estar no diretório do usuário no Sistema Operacional (Ex.: Windows: C:\Users\<nome_usuario>\ ou Unix-like: /home/<nome_usuario>/).

Configurações comuns

  • Setar nome de usuário:
    • git config --global user.name "Nome do Usuário"
  • Setar email:
    • git config --global user.email "email@dominio.com"
  • Setar editor padrão:
    • git config --global core.editor vim
  • Setar ferramenta de merge:
    • git config --global merge.tool vimdiff
  • Setar arquivo global de exclusões:
    • git config --global core.excludesfile ~/.gitignore
  • Listar configurações:
    • git config --list

Ignorar Arquivos com .gitignore

Arquivos e diretórios especificados no .gitignore serão ignorados pelo Git.

  • Global: Localizado no diretório do usuário e aplica-se a todos os repositórios.
  • Por Repositório: Armazenado no diretório do repositório e aplicável apenas a esse repositório específico.

Repositório Local

Criar novo repositório

  • git init

Verificar o estado dos arquivos/diretórios

  • git status

Adicionar arquivos à área de stage

  • Arquivo específico: git add <arquivo>
  • Diretório específico: git add <diretório>
  • Todos os arquivos: git add .
  • Adicionar arquivo ignorado: git add -f <arquivo>

Comitar alterações

  • Comitar um arquivo: git commit <arquivo>
  • Comitar vários arquivos: git commit <arquivo1> <arquivo2>
  • Comitar com mensagem: git commit -m "mensagem do commit"

Remover arquivos/diretórios

  • Remover arquivo: git rm <arquivo>
  • Remover diretório: git rm -r <diretório>

Histórico de commits

  • Exibir histórico completo: git log
  • Histórico com diff das últimas duas alterações: git log -p -2
  • Resumo do histórico: git log --stat
  • Histórico em uma linha: git log --pretty=oneline
  • Histórico com formatação personalizada:
    • git log --pretty=format:"%h - %an, %ar : %s"
    • Onde: %h = Hash abreviada, %an = Nome do autor, %ar = Data relativa, %s = Mensagem de commit

Desfazendo alterações

  • Desfazer alteração local (sem stage): git checkout -- <arquivo>
  • Desfazer alteração no stage: git reset HEAD <arquivo>

Repositório Remoto

Exibir repositórios remotos

  • git remote -v

Vincular repositório local a remoto

  • git remote add origin <url-repositório>

Enviar alterações para o repositório remoto

  • Primeiro push: git push -u origin master
  • Demais pushes: git push

Atualizar o repositório local

  • Baixar e aplicar alterações: git pull
  • Buscar alterações sem aplicá-las: git fetch

Clonar repositório remoto

  • git clone <url-repositório>

Trabalhando com Tags

  • Criar tag leve: git tag <nome-da-tag>
  • Criar tag anotada: git tag -a <nome-da-tag> -m "mensagem da tag"
  • Enviar tag para repositório remoto: git push origin <tag>

Trabalhando com Branches

  • Criar um novo branch: git branch <nome-do-branch>
  • Trocar de branch: git checkout <nome-do-branch>
  • Criar e trocar para um novo branch: git checkout -b <nome-do-branch>
  • Mesclar branches: git merge <nome-do-branch>

Rebasing

  • git rebase <branch-destino>

Stash (Mudanças temporárias)

  • Criar um stash: git stash
  • Listar stashes: git stash list
  • Aplicar o stash: git stash apply

Reescrevendo o histórico

  • Alterar a mensagem do último commit: git commit --amend -m "nova mensagem"

Bisect (Encontrar commits com bugs)

  • Iniciar bisect: git bisect start
  • Marcar commit atual como ruim: git bisect bad
  • Marcar commit como bom: git bisect good

Pull Requests

  • Criar pull request: git push origin <branch>

Contribuições

Sinta-se à vontade para adicionar mais informações ou realizar correções.

Top comments (0)