Semble comme pour Mercurial ou Git, si je ne mets pas en premier, je ne peux pas pousser? P>
Donc si je ne vous engagez pas (quand pas encore prêt), je ne peux pas appuyer sur un serveur distant pour sauvegarder mon code? Le code est dans un ordinateur portable, étant transporté, qui peut être quelque peu fragile. P>
5 Réponses :
C'est correct. Le but de la poussée est de partager un ou plusieurs commits avec d'autres repos. Ni sont principalement destinés aux sauvegardes (bien que certaines personnes les utilisent pour cela). p>
Il y a beaucoup d'outils de sauvegarde dédiés et de services en ligne. Voir sauvegarde en ligne pour une utilisation personnelle pour une liste. P>
Avoir un système de sauvegarde séparé peut sembler un peu tracas. Si seulement git ou mercurial peut laisser les gens mettre en place un repo pour une poussée non engagée. Quelque chose comme git push -ungmied ssh: // un peu / peter / tmp code>
@Jian, encore une fois, ce ne sont pas des programmes de sauvegarde. L'idée souhaitée est de rendre un ou plusieurs commits significatifs, que vous partagez ensuite. Il n'aurait pas fort de sens d'avoir un repo contenant des commits et des travaux en cours.
Le "système de sauvegarde séparé" peut également être un référentiel. C'est comme ça que je travaille: je code dans mon repo personnel (où je m'engage souvent) et j'ai un repo central pour partager mon travail avec mes collègues (où je pousse, mais moins souvent). Afin de sauvegarder le travail que je fais dans mon repo personnel, j'ai une troisième réputation: un crochet dans mon repo personnel effectue une poussée sur ce repo de sauvegarde à chaque fois que je vous engage. De cette façon, l'opération de sauvegarde est totalement transparente (la pénalité de temps est négligeable).
À titre de comparaison, TFS permet des sauvegardes distantes non engagées: des bizarreries.
c'est correct; Vous ne pouvez pas pousser des changements non engagés. Cependant, juste parce que vos changements ne sont pas encore prêts que vous ne voulez pas vous engager. Je n'ai aucune expérience avec Mercurial, mais avec Git, vous pouvez modifier un COMMIT ( GIT COMMITZ -AMEND CODE>) pour le modifier après son engagement. Vous pouvez également faire une série de commits et ensuite faire une boîte de rebasse interactive pour les combiner en une commission unique. Ou vous pouvez simplement faire des engagements aussi nécessaires et ne pas vous inquiéter de vous assurer que votre histoire est totalement vierge. P>
Cela n'est pertinent que si le référentiel qu'il pousse à être partagé. S'il suffit de l'utiliser à des fins de sauvegarde, cela ne devrait pas être un problème.
... et la branche est officielle. Si vous appuyez sur une branche appelée My-WIP CODE> et que quelqu'un pense qu'ils devraient construire un produit autour de cela, puis ils méritent de la confusion.
Vous êtes toujours em> prêt à commettre. p>
commettre souvent. Engagez-vous à travailler dans la branche d'avancement et à la distribuer aussi largement que vous le souhaitez. P>
Lorsque vous arrivez à l'état que vous parlez actuellement de «prêt à commettre», examinez la divergence de votre succursale à partir de l'amont, faites un Ce sera plus facile, plus sûr et vous donnera généralement de meilleurs résultats que d'essayer très fort de tout comprendre avant de vous engager. Rappelez-vous: un engagement ne représente pas nécessairement un état permanent souhaité de l'univers. C'est juste quelque part que vous êtes. Comment vous publiez-vous, c'est à vous de décider. P>
git le fait très em> facile à publier un Rebase -i code> pour le nettoyer et Faites-vous l'impression que vous voulez. P>
DO-NO-NO-WOE-ME-ME - DIRECTION DE VOTRE TRAVAIL En cours que vous pouvez passer ultérieurement dans votre code officielBase à Quel que soit le point et dans la forme que vous pensez le mieux vous convient le mieux. P>
Il suffit de faire une nouvelle branche à jetter. p>
Entegez des changements à moitié cuites dans cette branche et poussez cette branche. P>
Lorsque vos modifications sont prêtes, écrasez-vous votre demi-cuit commettre (en utilisant Il n'y a jamais de raison de ne pas valider vos changements, bien qu'il puisse y avoir des raisons de ne pas commettre à une branche particulière em> quand ils ne sont pas encore prêts. P> Rebase code>) et fusionner le résultat dans votre
maître code> et supprimer la branche de démarrage. (Vous pouvez supprimer une succursale à partir d'un référentiel distant à l'aide de
git push origine i>: branche i> code> - Notez le côlon avant le nom de la branche.) P >
lemme Voir si vous avez le scénario correct. Vous avez ...
... Mais votre patron agaçant vous vomme sur le dos et dit: "Hé! Quand allez-vous pousser ce changement que vous avez mentionné dans la réunion du personnel? Nous attendons tous!" Il est debout là-bas en attendant que vous le faites, alors comment le faites-vous sortir de vos cheveux rapidement et facilement? P>
C'est facile. Vous voulez utiliser extension MQ . Il est groupé avec l'installation mercuriale standard. P>
Ajoutez-le à votre fichier Pour cacher votre conscience Edits dans une entrée de la file d'attente de patch, faites ceci: p> poussez maintenant votre ancienne commettre, de sorte que votre patron se déclenche de votre dos. P> .hgrc code>. P>
$ hg qrefresh -m"Commit message goes here."
$ hg qfinish stash