Principais comandos do GIT (Windows)

De Redome
Revisão de 18h46min de 8 de abril de 2021 por Sheila.prado (discussão | contribs)
Ir para: navegação, pesquisa

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

  1. 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:

  1. Exibir os últimos n commits

$ git log -n

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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)