Quanti commit devi tornare indietro e selezionare? Se è solo uno, magari prendi un ramo subito prima, controlla il file che hai commesso e poi usalo git add -p
per aggiungerlo come lo desideri. Quindi puoi tornare al punto in cui ti trovavi ed estrarre il file dal tuo ramo temporaneo.
questo è:
git checkout -b temp troublesome-commit^
git checkout troublesome-commit -- path/to/file
git add -p path/to/file
git commit -c troublesome-commit
git checkout @{-1}
git checkout temp -- path/to/file
git commit path/to/file
git branch -D temp
Altre alternative includono tornare indietro e modificare il commit con git rebase -i
(contrassegnare il commit come edit
, quindi eseguire un git reset HEAD^
e ripetere il commit quando viene rilasciato nuovamente nella shell).
Se le modifiche da cui devi selezionare sono distribuite su una serie di commit, potrebbe essere meglio estrarle come patch (o una patch che le copre tutte) e modificare manualmente la patch, eliminando le modifiche che desideri mantenere, e alimentando il residuo in git apply --reverse
.