Je travaille sur le même projet sur deux ordinateurs différents, bureau et ordinateur portable. Parfois, j'ai besoin de faire la transition entre eux au milieu d'une tâche/fonction.Comment puis-je utiliser git rebase en toute sécurité lorsque je travaille sur plusieurs ordinateurs?
Je veux faire un commettras sur l'ordinateur portable , puis le transport (push/pull) au bureau et continuer. Ensuite, lorsque la fonctionnalité est terminée, je veux faire un nouveau commit et l'écraser avec le commit half-done.
Comment puis-je maintenant tirer/repasser sur le ordinateur portable sans confondre l'historique?
Quelle est la bonne façon de gérer cela? Après avoir fait cela, je dois aussi pouvoir publier les commits. Actuellement, je travaille directement sur la branche master, mais si je travaille sur une branche séparée, je vais le faire. Je sais comment utiliser git rebase -i, et je l'ai utilisé plusieurs fois sur le même ordinateur sans problème, vous n'avez donc pas besoin d'inclure les détails de git rebase/squash.
Je ne suis pas sûr de comprendre. J'utilise aussi github. Mais ne risquez-vous pas que quelqu'un clone votre repo à partir de github et que plus tard vous poussiez un peu d'histoire modifiée, n'at-il pas des problèmes alors? J'ai en fait un troisième ordinateur, un petit serveur, où j'ai aussi un clone (privé) du dépôt. Je suppose que je devrais pouvoir l'utiliser comme un référentiel maître autoritaire. – Anton
Je ne comprends pas complètement 'git reset - hard origin/master'. La documentation indique qu'il réinitialise le HEAD actuel à l'état spécifié. Donc, si HEAD est une branche locale 'master', et que cette branche contient d'anciennes validations qui ont été rebasées sur le référentiel maître authoring, que fait-elle? Cela fait que le maître local se réfère au même commit que l'origine/master? Et qu'arrive-t-il aux anciens commits? Lorsque je pense à une liste unique, je suppose qu'ils ne seraient pas référencés et n'apparaîtraient donc pas, par exemple, dans gitk? Sont-ils complètement supprimés? – Anton
Vous pouvez utiliser n'importe quel dépôt-serveur nu en tant que maître autoritaire. L'effet de reset --hard est de simplement définir votre checkout + index local pour * ce * commit, en éliminant efficacement les changements locaux. C'est pourquoi vous poussez toujours lorsque vous quittez une machine, donc le maître contient le dernier travail que vous avez fait. Quant aux autres collaborateurs, eh bien, ils devront suivre vos rebasements, que les débutants trouvent généralement difficile – krosenvold