comment réordonner les commits en Git de manière non interactive
Quelle(s) commande (s) non interactive (s) de git permet (NT) de passer d'avant à après?
avant:
A---B---C---D
après:
A---C'---B'---D'
3 réponses
dans votre cas, vous pouvez rebase interactive: git rebase -i HEAD~4
alors vous pouvez tout simplement réordonner vos choix
par exemple permet d'ajouter trois fichiers supplémentaires à notre branche:
git add A
git commit -m "A"
git add B
git commit -m "B"
git add C
git commit -m "C"
votre shortlog sera:
$ git shortlog
(3):
A
B
C
si vous voulez réordonner B avec C:
$ git rebase -i HEAD~2
pick 1f9133d B
pick 33f41be C
il suffit de re-commander à:
pick 33f41be C
pick 1f9133d B
après que vous avez fini d'écrire, voir le shortlog:
$ git shortlog
(3):
A
C
B
vous pouvez faire la même chose avec tous les commits en ré-ordonnant. C'est comme ce que vous voyez est ce que vous obtenez, ce qui est plutôt cool :)
essayez ceci:
git reset --hard A
git cherry-pick C
git cherry-pick B
git cherry-pick D
il y a peut-être un moyen avec git rebase
, mais je ne l'ai pas vraiment compris.
Voir Comment puis-je exécuter git rebase --interactive non interactif? pour utiliser git rebase --interactif de manière non interactive.
alors, si vous avez des critères formels pour réordonner des commits, vous pouvez script que, voir par exemple vraiment aplatir une fusion git pour réordonner des commits par la date de commit originale.