Você está na página 1de 2

Cheat Sheet

CRIAR BRANCHES E TAGS MERGE E REBASE


Clona um repositório existente Lista todas as branches existentes Fazer merge da <branch> no HEAD atual
$ git clone ssh://user@domain.com/repo.git $ git branch -av $ git merge <branch>

Cria um novo repositório local Muda a branch atual Fazer rebase do seu HEAD na <branch>
Não faça rebase com commits publicados!
$ git init $ git checkout <branch>
$ git rebase <branch>
Cria uma branch a partir do HEAD atual
MODIFICAÇÕES LOCAIS
$ git branch <new-branch> Abortar um rebase
Arquivos modificados no diretório ativo $ git rebase --abort
Cria uma nova branch com base em uma
$ git status
branch remoto Continuarum rebase depois de resolver
Modificações em arquivos versionados $ git checkout --track <remote/branch> conflitos
$ git diff $ git rebase --continue
Delete a local branch
Adiciona todas as mudanças no próximo $ git branch -d <branch> Usar a sua ferramente de merge
commit configurada para resolver conflitos
Marca o commit atual com uma tag
$ git add . $ git mergetool
$ git tag <tag-name>
Adiciona as mudanças do <file> Use seu editor para resolver conflitos manual
no próximo commit ATUALIZAR E PUBLICAR mente e marcar o arquivo como resolvido
$ git add -p <file> Lista todos os remotes configurados $ git add <resolved-file>

$ git remote -v
Faz commit de todas as modificações de $ git rm <resolved-file>
arquivos versionados Mostra informações sobre um remote
$ git commit -a $ git remote show <remote> DESFAZER
Faz commit das modificações preparada Adiciona um novo repositório remoto, Descarta todas as mudanças locais
nomeado <remote> no diretório atual
$ git commit

$ git remote add <shortname> <url> $ git reset --hard HEAD


Modifica o último commit
Não modifique commits publicados! Descarta mudanças locais em
Baixa todas as modificações do <remote>,
$ git commit --amend mas não integra ao HEAD um arquivo específico

$ git fetch <remote> $ git checkout HEAD <file>


LINHA DO TEMPO
Baixa as modificação e automaticamente Reverte um commit (criando um novo com as
Mostra todos os commits, começando modifições ao contrário)
faz o merge
pelo mais novo
$ git pull <remote> <branch> $ git revert <commit>
$ git log
Publica as modificações locais em um remote Reseta o ponteiro do HEAD para um
Desenha um gráfico ASCII representando commit anterior
a estrutura de ramificação do histórico $ git push <remote> <branch>
…e descarta as modificações desde então
$ git log --graph Deleta uma branch no remote
$ git reset --hard <commit>
Mostra as modificações para um arquivo $ git branch -dr <remote/branch>

específico …e preserva todas as modificações como


Publica suas tags modificações não preparadas
$ git log -p <file>
$ git push --tags $ git reset <commit>
Quem mudou o quê e quando em um arquivo
SALVAR FRAGMENTOS …e preserva modificações locais não commitadas
$ git blame <file>
Armazena os arquivos rastreados $ git reset --keep <commit>

$ git stash

Restaura os arquivos em stash


$ git stash apply
Boas Práticas
FAÇA COMMIT DE MODIFICAÇÕES TESTE O CÓDIGO ANTES DE USE BRANCHES
RELACIONADAS FAZER COMMIT
Branches são umas das funcionalidades
Um commit deve ser uma pacote de Evite fazer commit de algo que você «acha» que mais poderosas do Git - e não é por acidente:
branchs de uma forma fácil e rápida foi um
modificações relacionadas. Por exemplo, terminou. Faça testes (de preferência de
requisito central desde o início.
corrigindo dois bugs diferentes deve produzir unidade) para ter certeza que está pronto e não
Em um projeto de longa duração, muitos
dois commits separados. Pequenos commits tem efeitos colaterais . Ter seu código testado é
branches são criados e seus propósitos
tornam fácil para outros desenvolvedores muito mais importante quando ele é
podem ser confusos, por isso é importante
entenderem as modificações e as compartilhado com seus amigos, sem falar que seguir um padrão de nomenclatura:
desfazerem caso algo saia errado. previne o trabalho de ter que realizar essa <tipo de branch>/<task>_<descrição>
Separe novas implementações de mudanças correção no futuro, quando a equipe de QA Ex: feature/55_novoLayout
de refatoramento, assim, quem irá revisar o realizar os testes.
código saberá qual commit verificar e qual
não realiza mudanças funcionais no código.

FAÇA COMMIT SEMPRE ESCREVA BOAS MENSAGENS DE COMMIT SIGA O WORKFLOW


Fazer commit com frequência ajuda a Comece sua mensagem com um pequeno O Git permite você escolher entre várias
manter seus commits pequenos e, resumo de sua modificações (até 50 letras formas de desenvolvimento: branches de
novamente, ajuda você a fazer commit como orientação). Separe isso do corpo do longa duração, branches como tópicos,
apenas de modificações relacionadas. Além commit com uma linha em branco. O corpo merge ou rebase, git-flow...
disso, permite compartilhar seu código mais da mensagem deve prover respostas O git-flow é um modelo de branches que
frequentemente com os outros, sendo mais detalhadas para as seguintes perguntas: consiste basicamente em manter os
fácil para todos integrarem suas mudanças  O que foifeito? branches master e develop durante todo o
regularmente, evitando conflitos no merge.  Como foi feito? desenvolvimento, com o develop sendo
Se há uma pequena alteração que deveria  Porque foi feito? integrado ao master quando necessário e
ter sido incorporada no commit anterior e Use o imperativo, no tempo presente com branches de feature que se integram ao
esse commit ainda não foi enviado para o («muda», não «mudou» ou «mudanças») develop na medida em que são finalizadas.
remote, utilize o amend do git para para ser consistente com mensagens
incorporar as mudanças a serem feitas com geradas a partir de comandos como git
o último commit. merge.

NÃO FAÇA COMMIT DE TRABALHO MANTENHA O CÓDIGO ATUALIZADO AJUDA E DOCUMENTAÇÃO


PELA METADE Manter sempre o repositório local atualizado Obtenha ajuda por linha de comando
Você só deve fazer commit do código quando com o repositório remoto, e vice-versa, com $ git help <command>
ele estiver pronto. Isso não significa que você as alterações feitas pela equipe reduz
deve completar uma grande feature inteira conflitos e previne bugs futuros. Faça sempre
antes de fazer commit. Pelo contrário: Divida pull do repositório aliado aos commits
a implementação das features em blocos frequentes.
lógicos e lembre-se de fazer commit cedo e
com frequência.
Se você quer fazer commit apenas pela
necessidade de uma cópia limpa (para fazer
checkout em uma branch, pull em
modificações, etc.) utilize o comando stash
do Git.

Adaptação do Cheat Sheet


disponibilizado pela Git Tower

Você também pode gostar