Belajar Git : Perbedaan Git Reset, Checkout Dan Revert

Estimated: 3 min read
Belajar Git : Perbedaan Git Reset, Checkout Dan Revert

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.

git reset

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.

git revert

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 😄

Comments

Mohon sertakan informasi yang detail saat bertanya tentang eror, seperti: pesan error, log, dan screenshot.