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)