git init
Iniciar o versionamento dentro de uma pasta;
Criará um diretório .git;
Para fazer backup com todo histórico, apenas copiar o diretório .git.
git init --bare
Cria o repositório com as mesmas pastas que o git criaria dentro da pasta .git;
A pasta .git não existe nesse cenário;
Cria um repositório sem área de trabalho.
git status
Mostra o Status que está o Working Area e o Índice.
git add <>
Adicionar ao índice;
Dentro do <>, adicionará arquivos, arquivos de um tipo, ou tudo;
. ou * é igual a tudo;
Para arquivos de um tipo. Exp: *.java;
Caso tenha modificado o arquivo depois de ter adicionado ao índice, terá que refazer esse passo.
git add -i
Mostra um menu de opções para trabalhar em cima do Working Area X Índice.
git rm --cached <file>
Retira o arquivo do índice.
git commit -m "Mensagem para o commit que está fazendo. O Mesmo que histórico."
Envia ao repositório;
Grava o conteúdo do índice no repositório.
git commit -a -m "mensagem"
-a funciona para comitar arquivos que já foram modificados e já foram comitados ao menos uma vez.
git checkout --<file>
Caso queira retirar do índice.
git log
Lista os logs.
git log --stat
Mostra o que cada commit foi alterado.
git log --graph
Mostra os logs gráficamente.
gitk --all &
Git gráfico para visualização de logs.
git reset HEAD <>
Retira o arquivo modificado do índice, voltando para o Working Area.
git reset HEAD~1 --hard >
Esse comando retorna para o -1 commit;
--hard >
Arranca fora o commit inteiro;
--soft >
Ele volta para o Índice.
git commit -m "Teste" --amend
Para adicionar um arquivo no último commit;
Dica: Usar só locamente;
Joga fora o último commit e cria um novo.
.gitignore
Colocar as informações que não deseja versionar;
Ex: *.log >> Nunca versionará os arquivos com extensão .log.
git add target/teste.txt -f
Caso queira versionar mesmo estando configurando no .gitignore.
git reflog
Guarda o que foi-se apagando.
git merge <SHA1>
git merge <branch>
> fazer merge com outro branch;
git merge <branch> --squash
> Ele pega todos os commits de um branch e coloca no Índice no branch que está.
git clean -f
Pegar arquivos que estão no Working Area e jogam as modificações fora.
git stash
Pega os arquivos do índice e manda para o stash, retornando ao estado inicial do índice.
Usado para quando tem um ambiente estável e quer fazer novas modificações, por exemplo, testes.
git stash list
Mostra as listas que estão no Stash.
git stash apply
Ele pega o que está no stash e joga no índice novamente.
git stash apply stash@{0}
Retorna o último stash ou qualquer um que informou;
O mais recente sempre é o 0.
git stash clear
Apaga todas as listas do stash.
git stash save "<nome>"
Salva o stash com um nome.
git stash pop
Retira do stash, aplica no índice e apaga a lista do stash.
git stash drop <stash>
Retira da lista dos stashes.
- Convenção
Convencione a não trabalhar-se em cima do Master
Pode-se criar branches. Quantas quiser. Foi feito para ter inúmeras.
Sempre usar.
git branch
Lista as branches.
git branch -a
Mostra todas as branches incluindo os remotos
git branch -d bugfix
Apaga o branch bugfix.
git checkout -b desenvolvimento
Cria um novo branch;
Para ficar indo de um branch para outro, é necessário commitar;
Pega o estado que encontra-se o branch e cria um novo da mesma forma.
git checkout <branch>
Mudando de branch.
git rebase <master>
Trazer o versionanmento do branch informado para o branch que encontra-se;
Tem a função de desfazer o último commit, faz o merge com o branch que informou e commita o commit que tinha desfeito;
A principal função é manter o histórico linear.
git rebase --continue
Para quando não encontra-se em nenhum branch, já retirou o conflito e está querendo commitar.
- Repositórios Remotos
git clone <.gitRemoto> <repositorio>
Cria um clone do repositório informado para um novo diretório;
Cópia do repositório localmente;
Ex com Http: git clone https://github.com/marcoscarvalho/<path>.git <diretorio>
git remote
Lista os Repositórios remotos;
git remote show origin
Mostra o local da onde foi feito o clone;
"origin" é uma convenção para o primeiro remote/clone.
git remote add <nome> <url>
Adicionar novos repositórios remotos.
git remote rm <nomeRemote>
Desfaz a interligação com os outros repositórios.
git branch -b <novoBranch> origin/<velhoBranchDoQueVoceClonou>
Cria-se o branch a partir do branch clonado.
git push <remote> <branchRemoto>
Empurra para um branch remoto.
git pull <remote> <branchRemoto>
Puxa o repositório a partir do branch informado.
git fetch <remote> <branchRemoto>
Puxa novos commits do repo remoto para a branch especial <remote>/<branch>
git remote add <nome> <user>@<server>:<pasta>/<repositorio>
Adiciona um repositório externo
Enjoy
Marcos Carvalho