Melhor opção
Provavelmente, a maneira mais limpa, menos confusa e mais segura de acessar seu repositório remoto não-nua, é enviando para ramificações dedicadas no controle remoto que representam as ramificações de seu laptop.
Vejamos o caso mais simples e suponha que você tenha apenas uma ramificação em cada repositório: master. Quando você envia para o repositório remoto a partir do seu laptop, em vez de pressionar master -> master, pressione master -> laptop-master (ou um nome semelhante). Dessa forma, o envio não afeta a ramificação principal com check-out no momento no repositório remoto. Para fazer isso no laptop, o comando é bastante simples:
git push origin master:laptop-master
Isso significa que a ramificação principal local será enviada para a ramificação denominada "laptop-master" no repositório remoto. Em seu repo remoto, você terá uma nova ramificação chamada "laptop-master" que poderá ser mesclada ao seu mestre remoto quando estiver pronto.
Opção Alternativa
Também é possível simplesmente enviar master -> master, mas enviar para o ramo atualmente com check-out de um repo non-bare geralmente não é recomendado, porque pode ser confuso se você não entender o que está acontecendo. Isso ocorre porque enviar para uma ramificação com check-out não atualiza a árvore de trabalho; portanto, git status
o check-in na ramificação com check-out transferido mostrará exatamente as diferenças opostas às que foram enviadas mais recentemente. Ficaria especialmente confuso se a árvore de trabalho estivesse suja antes do envio, o que é um grande motivo para isso não ser recomendado.
Se você quiser apenas pressionar master -> master, o comando é apenas:
git push origin
Mas, quando você voltar ao repositório remoto, provavelmente desejará fazer um git reset --hard HEAD
para sincronizar a árvore de trabalho com o conteúdo enviado. Isso pode ser perigoso , porque se houver alguma alteração não confirmada na árvore de trabalho remota que você deseja manter, ela será eliminada. Certifique-se de saber quais são as consequências disso antes de tentar ou, pelo menos, faça um backup primeiro!
EDIT Desde o Git 2.3, você pode usar o git push "push-to-deploy": https://github.com/blog/1957-git-2-3-has-been-released . Mas empurrar para um ramo separado e depois mesclar é geralmente melhor, pois ele faz uma mesclagem real (portanto, funciona com alterações não confirmadas, assim como a mesclagem).