Vous pouvez le faire avec un rebasage interactif, mais soyez conscient des risques de réécriture de l'historique que vous avez déjà partagé. Commencez par rebaser avec git rebase -i <commit2>
. Cela ouvrira une fenêtre d'éditeur qui ressemble à ceci:
pick 8e1729c <msg3>
pick 5f4f4b1 <msg4>
pick d0936bb <msg5>
pick 652eb5c <msg6>
pick ceebbb7 <msg7>
pick d42a432 <msg8>
pick e203251 <msg9>
pick 7701829 <msg10>
Vous modifier la première colonne dans ce dossier comme celui-ci:
edit 8e1729c <msg3>
pick 5f4f4b1 <msg4>
pick d0936bb <msg5>
pick 652eb5c <msg6>
pick ceebbb7 <msg7>
pick d42a432 <msg8>
pick e203251 <msg9>
pick 7701829 <msg10>
Enregistrez le fichier et quittez. Git lancera le rebasement en réappliquant les validations affichées, mais en s'arrêtant après le premier afin de pouvoir apporter des modifications ou simplement ajouter un commit avant de continuer. Si vous souhaitez modifier la 3e originale engagement, juste faire vos changements maintenant et continuer
git commit --amend
git rebase --continue
Si vous souhaitez modifier le 3 d'origine commit, « annuler » avec
git reset HEAD^
puis faire une les modifications que vous voulez avant de poursuivre
# stage all your changes
git commit
git rebase --continue
Une fois que le rebasage il complète, vous pouvez le faire vos dernières modifications à la dernière livraison en faisant vos modifications, et modifiant commettre 10 avec
# stage changes
git commit --amend
Une fois vos commits sont en ordre, utiliser git log
pour trouver le nouveau CSA pour les deux commits que vous voulez marquer (le rebasage et --amend
auront changés!), Et il suffit de lancer
git tag <commit3hash> <tagname>
git tag <commit10hash> <tagname>
et pousser tout à votre télécommande
git push -f # You need to force it, since you've rewritten history
git push --tags
Le ta g est facile; Les tags ne font pas partie des commits, ils ne font référence qu'à des commits, vous pouvez donc ajouter une balise qui pointe vers n'importe quoi à n'importe quel moment. On ne sait pas ce que vous voulez dire en ajoutant un commit. Voulez-vous modifier un commit existant, ou juste commettre plus de code? Vous devrez donner plus de détails sur votre situation exacte. – chepner
Oui, je dois éditer certains fichiers et les valider, puis les marquer. Et il y a maintenant 10 commits de code au-dessus. Donc si les commits sont identifiés comme - 1, 2, 3 (c'est où je veux commettre du code), 4, 5, 6, 7 (vouloir valider le code et tag), 8, 9, 10 * (veulent commettre le code et la balise) .. Et aucun des commits de code ne modifiera/perturbera la base de code existante (je suis sûr à 100% à ce sujet). – user591410