Meilleure option
Le moyen le plus propre, le moins déroutant et le plus sûr de pousser dans votre référentiel distant non nu est probablement de pousser vers des branches dédiées dans la télécommande qui représentent les branches de votre ordinateur portable.
Examinons le cas le plus simple et supposons que vous n'avez qu'une seule branche dans chaque dépôt: master. Lorsque vous poussez vers le référentiel distant depuis votre ordinateur portable, au lieu de pousser master -> master, push master -> laptop-master (ou un nom similaire). De cette façon, le push n'affecte pas la branche principale actuellement extraite dans le référentiel distant. Pour ce faire depuis l'ordinateur portable, la commande est assez simple:
git push origin master:laptop-master
Cela signifie que la branche maître locale sera poussée vers la branche nommée "laptop-master" dans le référentiel distant. Dans votre dépôt distant, vous aurez une nouvelle branche nommée "laptop-master" que vous pourrez ensuite fusionner dans votre remote master lorsque vous serez prêt.
Option alternative
Il est également possible de simplement pousser master -> master, mais pousser vers la branche actuellement extraite d'un dépôt non nu n'est généralement pas recommandé, car cela peut être déroutant si vous ne comprenez pas ce qui se passe. En effet, le fait de pousser vers une branche extraite ne met pas à jour l'arborescence de travail, donc vérifiergit status
de la branche extraite qui a été poussée montrera exactement les différences opposées à ce qui a été le plus récemment poussé. Cela deviendrait particulièrement déroutant si l'arbre de travail était sale avant la poussée, ce qui est une grande raison pour laquelle cela n'est pas recommandé.
Si vous voulez essayer de pousser simplement master -> master, alors la commande est juste:
git push origin
Mais lorsque vous revenez au référentiel distant, vous voudrez probablement faire une git reset --hard HEAD
pour synchroniser l'arborescence de travail avec le contenu qui a été poussé. Cela peut être dangereux , car s'il y a des modifications non validées dans l'arborescence de travail à distance que vous vouliez conserver, elles les effaceront. Assurez-vous de savoir quelles en sont les conséquences avant de l'essayer, ou du moins faites d'abord une sauvegarde!
EDIT Depuis Git 2.3, vous pouvez utiliser "push-to-deploy" git push: https://github.com/blog/1957-git-2-3-has-been-released . Mais pousser vers une branche distincte, puis fusionner est généralement préférable car il effectue une fusion réelle (fonctionne donc avec des modifications non validées, tout comme la fusion le fait).