Principais comandos do GIT (Windows)
Comandos Básicos
Checar se o Git está instalado:
$ git --version
Dizer ao Git quem é você:
Esses comandos fazem o seu nome e e-mail aparecerem nos commits feitos por você.
$ git config --global user.name "SeuNome"
$ git config --global user.email "SeuEmail"
Checar o status do repositório local:
Exibe a branch atual, arquivos monitorados e não monitorados, e arquivos na área de staging e fora dela.
$ git status
Começar a monitorar arquivos e/ou adicionar arquivos a área de staging (“preparar para o commit”, “colocar as compras no carrinho”)
$ git add arquivo1 arquivo2 arquivo3
É possível passar vários arquivos de uma vez para o comando git add. Por exemplo, para adicionar todos os arquivos e pastas do diretório onde o comando é executado, basta digitar:
$ git add .
Para adicionar uma pasta:
$ git add minha-pasta
Obs.: Staging é basicamente um espaço temporário onde você determina quais mudanças serão adicionadas.
Salvar alterações (“tirar uma foto do repositório”, “finalizar a compra”)
$ git commit -m "Mensagem explicando o que foi feito"
Visualizar modificações feitas em arquivos
$ git diff
outra opção
$ git diff seu_arquivo
Visualizar histórico do projeto (logs)
$ git log
É interessante saber algumas combinações do git log, por exemplo:
Exibir os últimos n commits
$ git log -n
Exibir commits em uma linha
$ git log --oneline
Enviar alterações locais para o repositório remoto (já existente e já registrado como origin)
$ git push
Trazer alterações do repositório remoto para o local
$ git pull
Clonar um repositório do GitHub
$ git clone https://github.com/USUARIO/NomeRepositorio.git
Armazenar credenciais GitHub em memória (isso é seguro!)
$ git config --global credential.helper cache
ou
$ git config --global credential.helper 'cache --timeout=TEMPO_EM_SEGUNDOS'
Branches
Listar branches
$ git branch
Criar uma branch
$ git branch nome-da-branch
Trocar de branch
$ git checkout nome-da-branch
Criar uma branch e já trocar pra ela
$ git checkout -b nome-da-branch
Renomear branch
$ git branch -m novo-nome
Deletar branch
-D: deleta sem dó nem piedade. Cuidado para não perder o seu trabalho.
-d: só deleta se o trabalho realizado na branch tiver sido enviado para um repositório remoto ou unido com outra branch através de um merge.
$ git branch -D nome-da-branch
ou
$ git branch -d nome-da-branch
Listar todas as branches (locais e remotas)
$ git branch -a
Deletar branch remota
$ git push -d RemoteName nome-da-branch
por exemplo
$ git push -d origin minha-branch-123
Merge
Trazer alterações de outra branch para a branch atual
$ git merge nome-da-branch
Essa operação pode gerar conflitos. Você deve resolver esses conflitos (sozinho ou com a ajuda dos colegas de projeto) para a operação ser concluída.
Preste muita atenção nos conflitos, eles precisam ser resolvidos!!!
Se você não pode resolver os conflitos, considere abortar a tentativa de merge:
$ git merge --abort
Revertendo comandos com git reset
Se você acabou de dar um git add para começar a monitorar um arquivo e quer reverter essa operação, esse é o comando:
$ git rm --cached seu_arquivo rm 'seu_arquivo'
Se você quiser reverter e também deletar o arquivo:
$ git rm -f seu_arquivo rm 'seu_arquivo'
Remover arquivo da área de staging
Se você usou o git add para colocar as alterações feitas em um arquivo na área de staging, o comando para reverter o git add é esse aqui:
$ git reset HEAD arquivo
Se além de reverter o git add você também quiser descartar as alterações feitas nos arquivos, utilize esse comando:
$ git checkout arquivo
Reverter um git commit
Soft: Reverte o commit, voltamos exatamente um passo. As alterações continuam feitas nos arquivos e continuam na área de staging.
Mixed: Reverte o commit, voltamos exatamente dois passos. As alterações continuam feitas nos arquivos mas não continuam na área de staging.
Hard (cuidado!): Reverte o commit, voltamos exatamente três passos. As alterações feitas nos arquivos são descartadas, não há nada na área de staging.
HEAD~1 significa que estamos voltando um commit, você pode mudar esse número se quiser reverter mais commits.
$ git reset --soft HEAD~1
$ git reset --mixed HEAD~1
$ git reset --hard HEAD~1
Revertendo comandos com git revert
Reverter um commit
No exemplo abaixo, revertemos exatamente o último commit realizado. EAD~1 reverteria o penúltimo. E assim por diante.
$ git revert HEAD
Outra opção, passar o commit
$ git revert HashDoCommit
Reverter comandos no repositório remoto
Podemos usar os dois comandos vistos acima, git reset e git revert. Após executar um desses dois comandos devemos executar:
$ git push -f
Stash: Salvar o seu trabalho sem fazer commit
Lista opções
$ git stash list
Adicionar ao stash
$ git stash
Recupera suas alterações
$ git stash apply
ou
$ git stash apply stash@{0}
Sequência de comandos mais utilizados no projeto
$ git status (checar o status do repositório)
$ git stash save -m ‘Mensagem explicando o que foi feito’ (salva as alterações sem commit)
$ git pull (trazer alterações do repositório remoto para o local)
$ git stash pop 0 (remove as alterações no stash e as reaplica na cópia de trabalho.)
$ git add . ( monitorar arquivos e/ou adicionar arquivos a área de staging)
$ git commit -m "Mensagem explicando o que foi feito" (salvar alterações)
$ git push (enviar alterações locais para o repositório remoto)
$ git stash list (fazer visualização dos stashes)
$ git stash clear (limpa os stash existentes)
$ clear (limpa tela)
$ exit (sai do prompt)