La raison pour laquelle je pose cette question est que j'avais accidentellement fait un git commit -a
qui comprenait un fichier que je ne voulais pas encore valider. Ma solution était de faire ce qui suit:Existe-t-il un moyen d'ajouter une version spécifique d'un fichier à l'index git?
git reset --soft HEAD^
git reset -- file/with/changes_not_to_committed
git commit -C [email protected]{1}
Ici, j'ai rembobiné la branche par un commit tout en gardant l'index et l'arbre de travail, puis tiré file/with/changes_not_to_committed
d'une révision encore plus dans l'index, puis je me suis engagé l'index utilisant le message de validation de la validation de la branche précédente. Aucune invocation git-reset
ne touche la copie de travail, donc mes modifications à file/with/changes_not_to_committed
persistent, mais ne sont plus enregistrées dans la révision HEAD
.
Cependant, il aurait été plus facile si je pouvais tirer file/with/changes_not_to_committed
de la révision HEAD^
droite dans l'index sans toucher la copie de travail. Étant donné que l'indice correspond par ailleurs déjà l'état où je veux, je pourrais alors modifier juste le HEAD
commettras, produisant une séquence comme ceci:
git magic-pony HEAD^ file/with/changes_not_to_committed
git commit --amend -C HEAD
C'est presque ce que je recevrais en remplaçant git-magic-pony
avec git-checkout
, sauf l'exigence que la copie de travail soit laissée intacte et que seul l'index soit mis à jour. Il semble qu'il n'y a aucun moyen de faire git-checkout
ne pas toucher les deux.
Ma question est: existe-t-il git-magic-pony
, et si oui, sous quel nom?
Merci! C'est exactement ce que je cherchais. Je suis en désaccord sur l'interface graphique étant plus facile, cependant. :-) Plus découvrable, peut-être. –