Ajouter un fichier à un commit précédent
Si vous avez déjà poussé la branche sur laquelle vous travaillez, veuillez consulter l'onglet pages de manuel d'abord. En particulier, veuillez noter :
Rebaser (ou toute autre forme de réécriture) une branche sur laquelle d'autres ont basé leur travail est une mauvaise idée : toute personne en aval de celle-ci est obligée de corriger manuellement son historique.
Cependant, si vous n'avez pas poussé votre branche, préparez-vous à entrer dans la section zone de danger .
Trouver le hash du commit
Tout d'abord, vous devez connaître le hash du commit que vous voulez ajouter. Ceci est indiqué par git log
. Vous voulez en fait spécifier le commit avant à celui que vous voulez ajouter. (Vous pouvez le considérer comme l'index de départ de la tranche de commits que vous voulez modifier). Vous pouvez vous assurer que vous avez le bon commit en exécutant git log -1 HEAD~n
. Où 'n' est un nombre entier que vous incrémentez jusqu'à ce que vous ayez le bon engagement. Ou vous pouvez compter, pas vraiment.
Mais, si vous comptez, confirmez au moins que vous avez le bon commit avec git log -1 HEAD~5
ou quel que soit votre compte. Vous ne devriez PAS voir le commit que vous voulez ajouter.
DANGER , heh
Maintenant, vous êtes prêt à exécuter git rebase -i HEAD~5
ou utiliser un hash de validation à la place git rebase -i hash^
. Cela fera apparaître votre éditeur de texte préféré et un fichier à modifier. Ce fichier est la liste des choses à faire pour la commande rebase. Les commentaires dans le fichier vous indiquent les options dont vous disposez. Trouvez simplement la ligne avec le commit que vous voulez ajouter, et sur cette ligne changez 'pick' en 'edit'. Maintenant, enregistrez et fermez le fichier.
Le rebasement s'arrêtera une fois qu'il aura atteint le commit que vous lui avez demandé de modifier. Exécutez un git status
pour voir les informations supplémentaires qu'il fournit. Mettez en scène vos fichiers à ajouter au commit avec git add .
ou quel que soit le nom du fichier.
Ensuite, faites git commit --amend
o git commit --amend --no-edit
(si vous ne voulez pas modifier le message de validation). Cela modifiera le commit que vous avez choisi d'éditer.
Enfin, exécutez git rebase --continue
.
En cas de doute, sous Linux, vous pouvez en savoir plus en lisant la documentation produite par man git-rebase
o git --help rebase
.