Git workflow: como salvar e compartilhar alterações de maneira limpa

2

Esta é uma pergunta sobre uma prática recomendada. É provavelmente simples, mas eu ainda sou relativamente novo no Git, e gostaria de ter bons hábitos para as coisas que faço com frequência.

A situação é a seguinte. Eu tenho dois computadores CompA e CompB e um repositório remoto (no Bitbucket). Digamos que eu trabalhe em um único ramo.

Eu preciso fazer uma grande mudança em um arquivo. Eu começo do Computador A, mas não tenho tempo para terminar, e precisarei continuar meu trabalho no Computador B. Gostaria de disponibilizar para o Computador B as alterações já feitas no Computador A.

Eu normalmente faço isso comprometendo as alterações como elas são, empurrando para repositório remoto, e então puxando-as para o Computador B. No entanto, isso cria um commit que não é um conjunto completo de mudanças auto-suficiente.

Se possível, gostaria de ter apenas um commit com o conjunto final de alterações. Pelo menos no repositório remoto, se possível, também nos repositórios locais dos computadores A e B.

Qual é a maneira mais limpa de fazer isso?

    
por Peutch 11.05.2012 / 10:54

1 resposta

1

Grandes mudanças provavelmente são feitas melhor em uma ramificação separada, já que é muito fácil criar uma no Git. Confirme o quanto quiser, envie o branch para BitBucket, puxe-o no computador B ... Você pode usar git rebase --interactive para esmagar commits antes de mesclá-los ao branch master.

[master] $ git checkout -b fixXYZ
[fixXYZ] $ hack hack hack
[fixXYZ] $ git commit -m "Fixed some part"
[fixXYZ] $ hack hack
[fixXYZ] $ git commit -m "Fixed another part"
[fixXYZ] $ git push -u origin fixXYZ

Mais tarde, a qualquer momento antes da fusão ao mestre:

[master] $ git checkout fixsomething
[fixXYZ] $ git rebase -i master

(Embora não seja necessário esmagar tudo em um único commit - às vezes é mais fácil ler um log de vários commits menores).

    
por 11.05.2012 / 14:04

Tags