Geri dönüp seçim yapmak için kaç kaydetmeye ihtiyacınız var? Yalnızca bir ise, belki de hemen önce bir şube alabilir, taahhüt ettiğiniz dosyayı kontrol edebilir ve ardından git add -ponu istediğiniz şekilde eklemek için kullanabilirsiniz . Ardından, bulunduğunuz yere geri dönebilir ve dosyayı geçici şubenizden teslim alabilirsiniz.
yani:
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
Diğer alternatifler arasında geri dönme ve commit'i düzenleme git rebase -i(commit'iedit , sonra a yapma git reset HEAD^ve kabuğa geri bırakıldığında commit'i yeniden yapma) bulunur.
Seçmeniz gereken değişiklikler bir dizi taahhüt üzerine yayılmışsa, bunları yamalar (veya tümünü kapsayan bir yama) olarak çıkarmak ve saklamak istediğiniz değişiklikleri alarak yamayı elle düzenlemek daha iyi olabilir. ve artığı beslemek git apply --reverse.