J'ai un projet où j'ai la séquence de validation suivante: pour des raisons de développement, ce que je dois faire est ce qui suit:
1. Allez à commettre 5.
2. Faites de petits changements.
3. Publiez les modifications apportées à la production.
4. Ajoutez les modifications apportées aux commentations. P> Le problème vient lorsque je vois que le dossier que j'ai changé, il a également changé en commit 6. p> Que puis-je faire pour Changez le fichier dans COMMIT 5 et fusionner les modifications avec COMMIS 6 pour garder une bonne trace de tout? p> Merci !! p> p>
3 Réponses :
Essayez: puis, faites votre changement. p> Pas sûr, veuillez veiller à vérifier. strong> p> < P>
Vous pouvez faire des étapes ci-dessous.
Créer une nouvelle branche hors de commit5. p>
Vous ne pouvez pas faire Cherrypick pour un fichier individuel. Vous ne pouvez faire que Cherrypick au niveau de validation.
Faites une copie locale du fichier spécifique de COMTT5 (dites file_a), que vous souhaitez fusionner de STIGLE6. Après cela, cumulez le fichier spécifique de STIG6. p>
Maintenant, faites manuellement la fusion du fichier de commit5 (copie locale) avec un fichier de commit6 (dans la branche GIT) p> li>
Après avoir fait les changements, mettez-les et appuyez sur à distance. P>
Checkout GIT
Comme @nilswerner, le commentaire dit, ce n'est pas une bonne idée de réécrire une histoire publiée. Mais si vous voulez vraiment, après la force-poussée, dites à d'autres contributeurs que vous avez réécrit maître code> et ils doivent forcer à mettre à jour leur local Master code> et appliquer leurs engagements induits sur leur nouveau maître local code>, qui est une tâche assez gênante. p> p>
Merci!! Va essayer cela.
Rechercher
GIT Soft Reset Code>Puisque vous avez déjà poussé tous les commits (et cela ressemble à ce qu'ils sont également entrés dans la production), Vous ne devriez pas revenir en arrière i> et réparer le commit. Au lieu de cela, possédez l'erreur et le réparer dans un nouveau commit i>
Il convient également de noter: vous ne pouvez pas changer de commit existant. Vous pouvez revenir à commettre 4 (
5232f4b code>), faire une nouvelle et améliorée variante i> de commit 5 (le commit original sera toujours1d51716 code> et Vous aurez une nouvelle nouvelle identification de hachage laid maintenant), puis une copie de commit 6 à une nouvelle version améliorée qui ne sera pas800cedc code> -800cedc code> sera toujours quoi Il est, en permanence lié à1d51716 code>. Ensuite, vous pouvez demander à votre git et tous les autres git (tels que celui deOrigine Code>) pour vous empêcher d'utiliser800cedc code> et de passer à votre dernier commit est, mais il n'y a aucune garantie Ils vont faire ça.@torek Peut-être que je me suis tellement expliqué. Je n'ai pas l'intention de changer de commit. Dans ce cas, j'ai trouvé un bug qui doit être corrigé dans le BIGLE 5, car le COMMIT 6 n'est pas encore en production.
C'est surtout une prudence: si vous pense i> de "Fixer un bogue" comme " changer i> un commit" Vous avez dirigé un mauvais chemin qui pourrait vous trébucher un jour. Si vous le pensez comme remplaçant i> le commit (avec une nouvelle et améliorée), vous êtes dirigé sur un bon chemin, car c'est ce que Git fait vraiment sous le capot et vous ne serez pas surpris constater que l'engagement initial est toujours utilisé par d'autres. Donc, les mots que vous utilisez, même dans votre propre tête, pensez à ces choses, ce qui compte.
Bien sûr, dans ce cas, peut-être que toute la question n'était qu'une question de pronoms: vous avez dit «Retournez-vous à un commit précédent et modifiez IT I>». Le mot il i> ici semble faire référence à la commettre i>. Si, par it i>, vous vouliez dire les fichiers que j'ai extraits de celui-ci, de manière à faire un nouveau supplément de remplacement i> ... eh bien, c'est bien (si grammatical). :-)