Comandos | O que faz? |
---|---|
git add | Colocar arquivos na fase de stagging |
git status log | Ver o status das suas alterações |
git commit | Manipular alterações pós stagging |
git push | Enviar alterações para o repositório remoto |
git pull | Baixar informações do repositório remoto para o local |
git fetch | Atualizar referências |
git branch/checkout | Manipulação de branches e navegação entre branches |
git mv/rm | Trabalhando com arquivos e diretórios |
git merge | Fazendo merge entre branches |
git rebase | Reaplica commits em cima de determinada branch ou commit |
git revert | Como desfazer alterações |
git reset | Reseta o HEAD atual para o estado especificado |
outros | Mais comandos úteis |
- Inofensivo: Não faz nenhum tipo de alteração no seu projecto apenas entrega informações.
- Atenção: Preste atenção nestes comandos, porque devem ser executados com plena consciência do que eles farão na sua estrutura git.
- Perigoso: Estes comandos podem alterar a estrutura de ficheiros do seu projecto e isso pode causar a perda de ficheiros e diretórios.
git add .
- adiciona todas alterações feitas na fase de stagging.
git add file.txt
- adiciona file.txt na fase de stagging.
git add *.js
- adiciona todos arquivos com a extensão .js para fase de stagging, para saber mais como selecionar vários arquivos de uma só vez de uma olhada em wildcards.
git add --patch
- vejo linha por linha da alteração e consigo selecionar o que quero adicionar ao commit.
git status
- vê estado dos commits.
git status -s
- status resumido.
git status --short
- status resumido.
git log
- mostra lista de commits.
git log --oneline
- mostra historico de commits em uma linha por commit.
git log --abbrev-commit
- mostra historico de commits em uma linha por commit.
git log --color
- mostra historico de commits e tenta colorir o output.
git log --graph
- mostra historico em um grafico das branchs em modo texto.
git log --pretty
- mostra historico e permite que sejam utilizados place holders para as informações dos commits.
git log --pretty=oneline
- mostra o histórico de commits em uma linha por commit com o hash completo.
git commit -a
- commit direto, sem passar por stagging.
git commit -m "Mensagem"
- commit passando pelo stagging com mensagem de alteração.
git commit --amend
- adiciona alterações no commit anterior.
git push origin master
- envia as alterações para o repositório na branch master.
git push
- envia as alterações para o repositório na branch em que você está.
git push --set-upstream origin new-branch
- faz push da nova branch e suas alterações.
git push -u origin <nome_da_branch>
- faz push da branch (nova ou não) e suas alterações.
git push --delete origin <nome_da_branch>
- remove do repositório online a branch desejada.
git push origin --tags
- além do push normal eu preciso fazer push das tags também, para acrescentar uma tag no que foi commitado.
git pull origin
- baixa commits do repositório remoto.
git pull
- baixa commits do repositório remoto (igual o de cima).
git pull --rebase
- força rebase ao fazer pull.
git pull origin master --allow-unrelated-histories
- Vai permitir que juntes dois repositórios com históricos de commits diferentes, exemplo: quando vc cria um novo repositório no Github e tem os arquivos README.md, LICENSE e no seu laptop existe já um repositório local com mais ficheiros e pretendes subir este repositório local para o Github, primeiro tens de juntar o repositório que está no Github com teu repositório local e sendo eles repositórios com históricos de commits diferentes vc precisa especificar a opção --allow-unrelated-histories quando fazer o git pull.
git fetch origin
- atualiza as referências com um repositório remoto (busca branches etc).
git fetch
atualiza as referências com um repositório remoto (busca branches etc) ||.
git branch <nome_da_branch>
- cria nova branch com o nome desejado.
git branch
- lista as branches disponíveis no repositório local.
git branch -d <nome_da_branch>
- remove branch do repositorio local.
git checkout <nome_da_branch>
- navega para aquela branch.
git checkout -b <nome_da_branch>
- cria nova branch e já faz checkout nela.
git checkout -
- o git checkout - te leva a branch que você estava trabalhando antes de trocar de branch.
git checkout HEAD~2
- move o HEAD para dois commits anteriores.
git checkout -- <arquivo>
- recupera diretamente no working dir o arquivo desejado.
git checkout --ours <arquivo_conflito>
- adiciona conteúdo sem modificação que conflitou.
git checkout --theirs
<arquivo_conflito> - adiciona conteúdo em conflito na branch atual que estou.
git checkout <versao>
- "travo" para usar aquele commit em específico.
git mv <nome_atual_do_arquivo> <nome_novo_do_arquivo>
- renomeia um arquivo com um nome para um novo nome.
git mv <arquivo_1> <arquivo_2> <arquivo_3> ... <diretorio_de_destino>
- move o arquivo_1, arquivo_2, arquivo_3 e mais outros para o diretório de destino. Nota: vc pode estudar sobre wildcards para conseguir selecionar um conjunto de arquivos sem a necessidade de escrever o nome de cada um deles. Exemplo: git mv *.js SCRIPTS-JS/
esse comando vai copiar todos arquivos com a extensão .js para o diretório SCRIPTS-JS/.
git rm <nome_do_arquivo>
- remove determinado arquivo do repositório local. Nota: vc pode eliminar mais do que um arquivo e podes também usar wildcards .
git rm -r <nome_do_diretório>
- remove determinado todo diretório com seus arquivos e subdiretórios.
git rm -r *
- Elimina todos os arquivos e subdiretórios apartir da sua localização actual quando executar este comando.
git merge <nome_da_branch>
- faz merge com a branch desejada.
git merge <nome_da_branch> -no-ff
- faz merge com a branch deseja no modo 3-way.
git merge -abort
- cancela um merge que eu havia feito.
git rebase <nome_da_branch>
- reaplica todos os commits na branch desejada.
git rebase master -i
- mostra lista de commits e posso alterar ela para mudar o histórico e tudo, muito foda.
git revert <hash>
- reverte as alterações de um commit específico e cria um novo commit.
git revert
- não modifica histórico de commits, mas cria um novo commit com o inverso do commit desejado, ou seja, o resultado final é o commit anterior.
git reset HEAD~1 --hard
- descarta e elimina as alterações do último commit.
git reset HEAD~2 <arquivo>
- restaura para o staging as alterações do arquivo desejado em dois commits atrás.
git reset --mixed
- altera o staging e o repositório, mantém o working dir intacto. É o padrão e é útil nos casos que queremos desfazer partes das alterações e criar um novo commit em seguida.
git reset --soft
- similar ao mixed, mas mantém o staging como está.
git reset --hard
- desfaz tudo a partir de um commit específico.
git tag <versao>
- cria uma tag com a versao desejada.
git clone <repo> --depth
- quero o clone a partir de X commits.
git clean -f
- remove untracked files
git remote add origin <url_do_repositorio>
- Faz uma ligação com o seu repositório remoto e essa ligação será chamada origin note que o nome da ligação pode ser alterado e não ser necessariamente origin.
git commit --author="Ms. Jane Codeldoe <Jane@Codeldoe.com>" -m "Jane wrote this I'm just committing"
- Muda o autor de um determinado commit