Reset Commit

reset commit

Reset Commmit

Sebelumnya kita sudah tahu membatalkan perubahan, namun bagaimana jika ternyata perubahan sudah terlanjur kita commit ke Repository?

Untuk hal seperti itu, kita bisa melakukan reset commit.

Reset commit merupakan mekanisme dimana kita menggeser HEAD pointer ke posisi commit yang kita mau, artinya commit selanjutnya akan dilakukan pada posisi HEAD baru.

Untuk melakukan reset commit, kita bisa gunakan perintah : git reset <mode> hash

Ada beberapa mode pengaturan melakukan reset commit.

Diagram Reset Commit

diagram reset commit

Mode Git Reset

--soft, memindahkan HEAD pointer, namun tidak melakukan perubahan apapun di Staging Index dan Working Directory

--mixed (default), memindahkan HEAD pointer, mengubah Staging Index menjadi sama seperti dengan Repository, namun tidak mengubah apapun di Working Directory

--hard, memindahkan HEAD pointer, dan mengubah Staging Index dan Working Directory sehingga sama dengan Repository

Git Log

a8ea14d (HEAD -> master) Menghapus file3.txt
171669f Melakukan Perubaha di file1.txt dan file2.txt
6ccf55a Melakukan Perubahan di file3.txt
270669f Menambah file3.txt
69d1679 Menambah file2.txt
6aec017 Menambah file1.txt

git log sederhana

Git Reset Soft

git reset --soft a8ea14d

git reset --soft hash

Rewrite Riwayat Commit

Jika kita melakukan reset, namun kita belum membuat commit baru, Kita masih bisa kembali maju lagi ke commit yang paling baru.

Namun jika kita membuat commit baru, secara otomatis commit lama akan ditimpa oleh commit baru.


Posisi HEAD setelah reset mode soft

posisi head sekarang setelah reset


Kembali ke Awal

git reset --soft a8ea14d

kembali ke awal head

Git Reset Mixed

a8ea14d (HEAD -> master) Menghapus file3.txt
171669f Melakukan Perubaha di file1.txt dan file2.txt
6ccf55a Melakukan Perubahan di file3.txt
270669f Menambah file3.txt
69d1679 Menambah file2.txt
6aec017 Menambah file1.txt

git reset --mixed 171669f

git reset --mixed hash

posisi head git reset --mixed hash


Kembali ke Awal

a8ea14d (HEAD -> master) Menghapus file3.txt
171669f Melakukan Perubaha di file1.txt dan file2.txt
6ccf55a Melakukan Perubahan di file3.txt
270669f Menambah file3.txt
69d1679 Menambah file2.txt
6aec017 Menambah file1.txt

git reset --mixed a8ea14d

kembali ke awal

Git Reset Hard

a8ea14d (HEAD -> master) Menghapus file3.txt
171669f Melakukan Perubaha di file1.txt dan file2.txt
6ccf55a Melakukan Perubahan di file3.txt
270669f Menambah file3.txt
69d1679 Menambah file2.txt
6aec017 Menambah file1.txt

git reset --hard 171669f

git reset --hard semua perubahan hilang

semua perubahan hilang working, index dan repository


Sebenarnya masih bisa mengembalikan, asalkan belum melakukan commit baru dan bisa tetapi balik ke commit sebelumnya.

mengembalikan ke commit sebelumnya
Next Post Previous Post
No Comment
Add Comment
comment url