Aqui está como eu faço isso. Eu costumo trabalhar sozinho no repositório remoto, então comentários são bem-vindos, especialmente de pessoas que usam um fluxo de trabalho similar de forma colaborativa.
No computador local: clone o repositório remoto.
git clone ssh://user@master:path/my_rep
cd my_rep
O repositório clonado cria automaticamente um link de 'origem' para o mestre. Antes de trabalhar, é uma boa ideia extrair as alterações mais recentes e criar uma ramificação local:
git pull origin --rebase
git checkout -b local_mybranch
(... work ...)
git commit -a
(... work ...)
git commit -a
Antes de enviar suas alterações para o mestre, você sempre pode fazer um pull da alteração principal e rebase sua ramificação de trabalho. Um truque que eu costumo usar é fazer um rebase com a opção -i. Dessa forma, você pode colar sua confirmação em um único commit gigante.
git checkout master
git pull --rebase
git checkout local_mychanges
git rebase -i master
Em seguida, envie suas alterações para o controle remoto: git push origem local_mybranch: mybranch_on_remote
No repositório remoto. Você (ou outra pessoa) pode mesclar as alterações no ramo mestre.
git checkout master
git merge mybranch_on_remote