Pada artikel sebelumnya kita sudah belajar bagaimana cara membatalkan revisi menggunakan perintah git checkout
, git revert
dan git reset
.
Ketiga perintah di atas dapat melakukan hal yang serupa, yaitu membatalkan commit yang telah kita lakukan pada repositori git kita.
Eiiittsss....
Tapi sebenarnya ketiga perintah tersebut punya perbedaan loh walaupun fungsinya sama.
Nah pada artikel kali ini kita akan melihat apa sih perbedaan dari git checkout
, git revert
dan git reset
.
1. Git Checkout
Jika kita ingin mengembalikan kondisi file seperti pada nomor commit yang diinginkan maka kita dapat menggunakan perintah:
git checkout <nomor commit>
Contohnya kita punya commit seperti berikut:
$ git log
commit 6da9994ddb4c922b151c732da7b413f9ccfb86a6 (HEAD -> master)
Author: Chairuman <chairuman.thahir@gmail.com>
Date: Wed Dec 15 10:14:11 2021 +0700
belajar membatalkan perubahan pada git
commit a6403be16a7d20f0f339d672f45567f968825b8d
Author: chairuman <chairuman.thahir@gmail.com>
Date: Tue Feb 23 19:52:03 2021 +0700
edit index.php
commit a5ed4897f2c434f85451ce6602dba8c92afae76b
Author: depotkode <seuramoid@gmail.com>
Date: Mon Feb 22 17:26:48 2021 +0700
git diff
Jika kita ingin mengembalikan file seperti pada nomor commit a6403be16a7d20f0f339d672f45567f968825b8d
, maka cukup dengan perintah:
git checkout a6403be16a7d20f0f339d672f45567f968825b8d
Maka semua file akan dikembalikan menjadi seperti pada nomor commit tersebut. Namun seperti yang telah kita bahas sebelumnya, hal ini bersifat temporer atau hanya sementara karena pengembalian keadaan file ini tidak tersimpan ke dalam database git.
Jika kita ingin kembali ke commit terbaru lagi maka kita bisa melakukannya dengan perintah :
git checkout master
Selain untuk mengembalikan keadaan file menjadi seperti pada commit tertentu, perintah git checkout
juga dapat kita gunakan untuk pindah ke branch (cabang) lain dengan perintah seperti berikut:
git checkout <nama_branch>
Dan juga kita dapat membuat branch baru dengan perintah git checkout
:
git checkout -b <nama_branch>
Misalnya kita ingin membuat branch dengan nama dev
, maka kita dapat membuatnya dengan perintah:
git checkout -b dev
Maka otomatis git akan membuat sebuah branch baru dengan nama dev
dan kita akan langsung dialihkan ke dalam branch tersebut.
2. Git Reset
git reset
merupakan perintah yang complex yang dapat digunakan untuk membatalkan perubahan yang dilakukan.
perhatian!
: kita tidak dapat membatalkan git reset
, semua perubahan yang telah di reset tidak dapat dikembalikan lagi.
Kita juga dapat menggunakan tiga argumen ketika ingin menggunakan perintah git reset
, argumen tersebut adalah:
--soft
: Dengan menggunakan argumen--soft
maka git akan mengembalikan berkas atau file ke dalam keadaan staged.--mixed
: Dengan menggunakan argumen--mixed
maka git akan mengembalikan berkas atau file ke dalam keadaan modified.--hard
: Dengan menggunakan argumen--hard
maka git akan mengembalikan berkas atau file ke dalam keadaan commited.
3. Git Revert
Perintah git revert
akan mengembalikan kondisi berkas yang ada dimasa lalu, selanjutnya akan digabungkan dengan commit -an terakhir dimasa sekarang.
git revert
lebih aman digunakan daripada git reset
. Karena perintah ini tidak akan menghapus catatan log git di masa yang lalu.
Kesimpulan
Kita sudah belajar mengenai git checkout
, git reset
dan git revert
yang mana memiliki fungsi yang sama.
Akan tetapi juga memiliki perbedaan sebagai berikut:
git checkout
akan mengembalikan keadaan berkas menjadi seperti sebelumnya, tetapi hak ini hanya bersifat sementara.git reset
akan mengembalikan keadaan berkas menjadi seperti sebelumnya dan akan menghapus perubahan dimasa sekarang.git revert
akan mengembalikan keadaan berkas menjadi seperti sebelumnya dan akan digabungkan dengan kondisi saat ini.
Selanjutnya kita akan belajar tentang percabangan(branch) pada git.
Semangat belajar...Sampai Jumpa 😄