Anda dapat menggunakan git checkout -p, yang memungkinkan Anda memilih setiap bakhil dari perbedaan antara copy pekerjaan Anda dan indeks untuk dikembalikan. Demikian juga, git add -pmemungkinkan Anda untuk memilih bakhil untuk ditambahkan ke indeks, dan git reset -pmemungkinkan Anda untuk memilih bakhil individual dari perbedaan antara indeks dan HEAD untuk mundur dari indeks.
$ git checkout -p file/to/partially/revert
# or ...
$ git checkout -p .
Jika Anda ingin memotret repositori git Anda sebelumnya untuk menyimpan perubahan ini sebelum mengembalikannya, saya ingin melakukannya:
$ git stash; git stash apply
Jika Anda sering menggunakannya, Anda mungkin ingin menggunakannya:
[alias]
checkpoint = !git stash; git stash apply
Mengembalikan bakhil atau garis individual dapat lebih mudah jika Anda menggunakan mode atau plugin editor yang baik, yang dapat memberikan dukungan untuk memilih jalur yang akan dikembalikan secara langsung, karena -pterkadang terkadang agak canggung untuk digunakan. Saya menggunakan Magit , mode Emacs yang sangat membantu untuk bekerja dengan Git. Di Magit, Anda dapat menjalankan magit-status, menemukan perbedaan untuk perubahan yang ingin Anda kembalikan, pilih garis yang ingin Anda kembalikan (atau cukup tempatkan kursor pada bakhil yang ingin Anda kembalikan jika Anda ingin mengembalikan sebongkah pada suatu waktu alih-alih satu baris pada satu waktu), dan tekan kuntuk mengembalikan garis-garis tertentu. Saya sangat merekomendasikan Magit jika Anda menggunakan Emacs.