176 votes

Pousser à un dépôt Git non-nue

J’ai travaillent habituellement sur un serveur distant via ssh (écran, vim), où j’ai un dépôt Git. Parfois, je ne suis pas en ligne, donc j’ai un dépôt distinct (cloné de ma télécommande) sur mon ordinateur portable.

Cependant, je ne peux pas tirer de ce référentiel distant côté parce que je suis habituellement derrière un pare-feu ou je n’ai pas une adresse IP publique.

J’ai lu que je devrais pousser juste à un dépôt nu. Comment devrais je puis pousser mes modifications à mon dépôt distant ?

160voto

Dan Moulding Points 46866

Meilleure Option

Probablement le plus propre, moins de confusion, et de la manière la plus sûre de pousser dans votre non-nue dépôt distant, est de pousser à des filiales dédiées à la distance qui représentent votre ordinateur portable branches.

Regardons le cas le plus simple, et supposons que vous avez seulement une branche dans chaque repo: master. Lorsque vous appuyez sur le repo distant à partir de votre ordinateur portable, au lieu de pousser master -> maître, pousser master -> ordinateur portable-maître (ou un nom similaire). De cette façon, le push n'affecte pas le actuellement check-out, la branche principale de la distance des pensions. Pour ce faire, à partir de l'ordinateur portable, la commande est assez simple:

git push origin master:laptop-master

Cela signifie que la maîtrise locale de la branche seront poussés à la branche nommée "ordinateur portable-master" dans le dépôt distant. Dans votre repo distant, vous aurez une nouvelle branche nommée "ordinateur portable-maître" que vous pouvez fusionner dans votre master à distance lorsque vous êtes prêt.

Autre Option

Il est également possible de simplement pousser master -> maître, mais en poussant à l'extrait d'une branche de non-nue repo est généralement pas recommandée, car elle peut être source de confusion si vous ne comprenez pas ce qui se passe. C'est parce que le poussant à un extrait de la branche n'est pas mise à jour le travail de l'arbre, donc la vérification des git status dans l'extrait de la branche qui a été poussé dans le montrera exactement le contraire de différences que ce qui a été le plus récemment poussé. Il se surtout à confusion si le travail de l'arbre était sale avant la poussée a été effectuée, qui est une grande raison pour laquelle ce n'est pas recommandé.

Si vous voulez essayer de simplement appuyer sur master -> maître, puis la commande est juste:

git push origin

Mais lorsque vous allez à l'arrière de la télécommande repo, vous aurez plus de chances de vouloir faire un git reset --hard HEAD pour obtenir le travail de l'arbre en synchronisation avec le contenu qui a été poussé. Cela peut être dangereux, car s'il y a des non validées changements dans le travail à distance de l'arbre que vous voulez garder, il va les anéantir. Assurez-vous de savoir quelles sont les conséquences de ce sont avant de l'essayer, ou au moins de faire d'abord une sauvegarde!

18voto

Manish Points 712

Je dirais pour avoir un nu-référentiel et un repos de (non-nus) de travail local dans votre serveur. Vous pouvez envoyer les modifications de l’ordinateur portable au repo nu de serveur et puis tirer de ce repo nu de serveur repo qui travaillent. La raison pour laquelle que je dis que c’est parce que vous pourriez avoir beaucoup de branches complet/incomplet au serveur dont vous souhaitez répliquer sur le portable.

De cette façon, que vous n’avez pas à vous soucier de l’état de la branche vérifié sur le repo de travail serveur tout en poussant les modifications au serveur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X