meilleure option
Probablement la plus propre, moins confus, et le plus sûr moyen de pousser dans votre dépôt distant non-nu, est de pousser à des branches dédiées à la télécommande qui représentent vos branches d'ordinateurs portables.
Regardons le cas le plus simple, et supposons que vous avez juste une branche dans chaque repo: maître. Lorsque vous poussez vers le repo distant à partir de votre ordinateur portable, au lieu de pousser maître -> maître, appuyez sur maître -> ordinateur portable-maître (ou un nom similaire). De cette façon, la poussée n'affecte pas la branche maîtresse actuellement extraite dans le repo distant. Pour ce faire, à partir de l'ordinateur portable, la commande est assez simple:
git push origin master:laptop-master
Cela signifie que la branche de maître local sera poussé à la branche nommée « maître d'ordinateur portable » dans le dépôt distant. Dans votre repo distant, vous aurez une nouvelle branche nommée "laptop-master" que vous pourrez ensuite fusionner dans votre maître distant lorsque vous serez prêt.
Option Autre
Il est également possible il suffit de pousser maître -> maître, mais poussant à la branche check-out actuellement d'une pension non-nu est généralement pas recommandée, car elle peut être source de confusion si vous Je ne comprends pas ce qui se passe. En effet, le fait de pousser vers une branche empruntée ne met pas à jour l'arborescence de travail. Par conséquent, si vous vérifiez git status
dans la branche extraite dans laquelle elle a été insérée, les différences seront exactement les mêmes que celles qui ont été les plus récentes. Il serait particulièrement déroutant que l'arbre de travail soit sale avant que la poussée ne soit faite, ce qui est une grande raison pour laquelle ce n'est pas recommandé.
Si vous voulez essayer maître juste pousser -> maître, la commande est juste:
git push origin
Mais quand vous revenez à la prise en pension à distance, vous voulez le plus susceptible de faire git reset --hard HEAD
à obtenir l'arbre de travail en synchronisation avec le contenu qui a été poussé. Cela peut être dangereux, car s'il y a non validés modifications dans l'arborescence de travail à distance que vous souhaitez conserver va les effacer. Assurez-vous de connaître les conséquences avant d'essayer, ou au moins de faire une sauvegarde en premier!
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 séparée et ensuite fusionner est généralement meilleur car il effectue une fusion réelle (donc fonctionne avec des modifications non validées comme le fait la fusion).
connexes: http://stackoverflow.com/questions/12265729/git-config-receive-denycurrentbranch – prusswan
avoir 2 repos à distance, un nu et un normal, et utiliser des crochets. semble être un problème, mais selon [git ready] (http://gitready.com/advanced/2009/02/01/push-to-only-bare-repositories.html) et [le wiki officiel de git] (https : //git.wiki.kernel.org/index.php? title = Git_FAQ & oldid = 23811 # Why_won.27t_I_see_changes_in_the_remote_repo_after_.22git_push.22.3F), vous devriez seulement ** pousser à un repo nu **. c'est probablement la raison pour laquelle la plupart des hôtes repo git (par exemple GitHub, Bitbucket) incluent des hooks post-réception, donc vous pouvez POST à une URL sur votre serveur qui exécute un script qui exécute par exemple 'git pull github master'. –