Belajar Git #08: Perbedaan Git checkout, Git Reset, dan Git Revert

Pada tutorial ke-6, kita sudah membahas cara membatalkan revisi menggunakan perintah git checkout, git reset, dan git revert.

Sekilas, tiga perintah tersebut melakukan hal yang sama. Akan tetapi ada perbedaannya.

Apa itu?

Mari kita bahas…

Git Checkout

Perintah git checkout seperti mesin waktu, kita bisa mengembalikan kondisi file ke proyek sperti waktu yang di tuju.

Misalnya:

DIFF
git checkout 06f735af7724558164c87f6b1ce3ca7778eb1c1b
Klik untuk membuka dan melihat lebih banyak

Maka semua file akan dikembalikan seperti keadaan pada nomer commit tersebut.

Petani Kode

Sistem Git

Akan tetapi, ini bersifat temporer (sementara). Pengembalian ini tidak disimpan dalam database Git.

Kita bisa sebut perintah git checkout sebagai perintah untuk mengecek kondisi file di setiap commit.

Tips: Untuk kembali dari masa lalu gunakan perintah:

git checkout master

Selain itu juga, perintah ini digunakan untuk berpindah dan membuat cabang. Ini bisa kita gunakan untuk membuat perubahan baru berdasarkan kode di masa lalu.

Contoh:

Misalnya kita ingin membuat cabang baru berdasarkan kondisi kode di masa lalu, maka kita bisa menggunakan perintah:

DIFF
git checkout -b nama_cabang <nomer_commit>
Klik untuk membuka dan melihat lebih banyak

Maka nanti cabang baru akan terbentuk dari commit sebelumnya.

Petani Kode

Sistem Git

Cara ini bisa kita ibaratkan seperti menulis cerita baru dengan plot yang berbeda.

Git Reset

Perintah git reset sering disebut sebagai perintah berbahaya yang dapat menghancurkan catatan sejarah perubahan.

Hati-hati! Perintah ini membuat kita tidak bisa kembali lagi ke masa depan. Mau tidak mau, kita harus menulis ulang sejarah.

Petani Kode

Sistem Git

Perintah ini memiliki tiga argumen atau opini utama yaoitu, --soft, --mixed, dan --hard.

Contoh penggunaan:

DIFF
git reset --soft 06f735af7724558164c87f6b1ce3ca7778eb1c1b
Klik untuk membuka dan melihat lebih banyak

Maka kita akan diekmbalikan dengan file dalam keadaan staged.

Petani Kode

Sistem Git

Coba periksa catatan perubahan dengan perintah git log, pasti ad yang hilang dan akan bisa kembali ke masa depan. Ini seperti Re:Zero 😄.

Hati-hati:

“Jangan lakukan git reset pada repositori yang sudah di bagikan ke publik, karena dapat merusaknya.”

Git Revert

Revert artinya mengembalikan. Perintah ini lebih aman daripada git reset, karena tidak akan menghapus catatan sejarah revisi.

Revert akan akan mengambil kondisi file yang ada di masa lalu, kemudian menggabungkannya dengan commit terakhir.

Petani Kode

Sistem Git

Masih belum paham?

Mari kita coba lakukan sedikit eksperimen…

Sebelumnya, berikut ini adalah kondisi repositori yang dijadikan bahan percobaan.

Petani Kode

Sistem Git

Ada empat commit di sana, kemudian kita ingin melakukan revert ke commit ke-2.

Petani Kode

Sistem Git

Terjadi error, karena ada file yang bentrok.

Petani Kode

Sistem Git

Silakan atasi konflik ini, setelah itu lakukan commit.

Petani Kode

Sistem Git

Nah, sekarang kita sudah punya lima catatan revisi/commit di dalam repositori.

Kesimpulan

Kira-kira seperti itulah perbedaan perintah git checkout, git reset, dan git revert.

Referensi:

Mulai mencari

Masukkan kata kunci untuk mencari artikel

↑↓
ESC
⌘K Pintasan