Vou colocar aqui uma série de usos comuns de Git no dia-a-dia do desenvolvimento, para servir de referência a todos.
Também recomendo este artigo sobre um modelo robusto para organização de branches que o @vinicius mencionou na discussão desta thread.
Começando uma nova estória*:
Criando uma branch local a partir da dev:
$ git checkout dev
$ git pull
$ git checkout -b branch_da_estoria
Criando a branch remota a partir da local
$ git checkout branch_da_estoria
$ git push -u origin branch_da_estoria
Continuando uma estória:
Se você não tem uma branch local da história:
$ git fetch --prune
$ git checkout branch_da_estoria
Se você já tem a branch local:
$ git checkout branch_da_estoria
$ git pull
Sempre que fazemos um git pull
com commits locais corremos o risco de ter conflitos. Algum dia explicarei como lidar com eles, mas basicamente você… lida com eles.
Terminando o trabalho numa estória:
Lembre-se de fazer commit do seu trabalho antes de seguir os próximos passos!
Para mais informações sobre commits, veja a seção mais abaixo.
Terminando uma sessão de trabalho:
# Supondo que existe uma branch remota. Para criar uma, veja mais acima.
$ git pull
# Resolva os conflitos, se houver
$ git push
Terminando a estória inteira, precisamos unir com a dev:
# Atualizando a dev
$ git checkout dev
$ git pull
# Resolva os conflitos
$ git checkout branch_da_estoria
$ git rebase dev
# Resolva mais conflitos
$ git checkout dev
$ git merge --no-ff branch_da_estoria
Apagando a branch remota:
# Note que o ":" tem que estar colado na palavra seguinte
$ git push origin :branch_da_estoria
$ git fetch --prune
Apagando a branch local:
$ git branch -d branch_da_estoria
Fazendo (bons) commits:
Em breve.
Resolvendo conflitos de rebase:
Em breve.
Em breve mais!
*Se não me engano não existe essa palavra em português, mas como se trata de uma tradução do termo Inglês story, achei melhor dar uma de neologista fajuto do que causar confusões com a palavra história.