Membatalkan Perubahan GIT

Membatalkan Perubahan GIT

Membatalkan Perubahan GIT - Dalam mengerjakan project koding tentu saja kita akan sering melakukan perubahan pada file project kita dan merekamnya dengan git. Tetapi terkadang kita melakukan perubahan yang salah sehingga harus kembali ke keadaan sebelumnya.

Jika perubahan yang kita lakukan relatif sedikit, tentu saja dapat dengan mudah menghapus perubahan tersebut secara manual. Tetapi masalah mulai muncul jika perubahan sudah banyak dan cenderung sulit untuk diidentifikasi secara manual.

Git sendiri sudah mengantisipasi keadaan tersebut, sehingga untuk membatalkan perubahan di git kamu bisa menggunakan tiga cara, antara lain git checkout, git reset dan git revert.

Membatalkan Perubahan yang Belum Staged ataupun Committed

Kondisi pertama yaitu ketika kita melakukan perubahan pada file project tetapi belum dilakukan git add atau dengan kata lain belum di kondisi stage maupun commit.

Untuk membatalkan perubahan file yang belum staged atau committed bisa dengan melakukan perintah git checkout nama_file.

Misalkan dari materi sebelumnya kita melakukan perubahan di file catatan.txt lalu kita cek dengan git status.

Contoh:
$ git status
On branch main
Changes not staged for commit:
 (use "git add <file>..." to update what will be committed)
 (use "git restore <file>..." to discard changes in working directory)
        modified:   catatan.txt

no changes added to commit (use "git add" and/or "git commit -a")

Dalam hal ini kita belum menambahkan perubahan ke stage, untuk membatalkan perubahan tersebut lakukan perintah checkout.

Perintah:

git checkout catatan.txt

Dengan menjalakan perintah di atas, maka perubahan yang telah kita lakukan akan dibatalkan. Untuk memastikannya, silahkan cek lagi dengan perintah git status.

$ git status
On branch main
nothing to commit, working tree clean

Perlu diingat!!

Sebelum melakukan perintah tersebut, jangan lupa untuk memastikan ulang kalau memang perubahan yang dilakukan benar-benar tidak diinginkan. Hal ini karena perubahan yang dilakukan akan benar-benar dihapus dan tidak bisa dikembalikan.

Membatalkan Perubahan yang Sudah Staged

Kondisi kedua yaitu ketika file di project kita sudah dipindahkan ke kondisi staged melalui git add tetapi belum melakukan commit.

Misalnya, kita melakukan perubahan di file catatan.txt dan sudah melakukan perintah git add

Contoh:

$ git status
On branch main
Changes to be committed:
 (use "git restore --staged <file>..." to unstage)
        modified:   catatan.txt

Jika kita lihat file perubahan yang sudah di staged akan tampak seperti berikut.

$ git diff --cached
diff --git a/catatan.txt b/catatan.txt
index e27f6bb..18fcf91 100644
--- a/catatan.txt
+++ b/catatan.txt
@@ -1,2 +1,4 @@
Ini catatan belajar git di tomipedia.com
-Belajar git dasar di tomipedia sangat menyenangkan
\ No newline at end of file
+Belajar git dasar di tomipedia sangat menyenangkan
+
+Sekarang saya belajar membatalkan perubahan git
\ No newline at end of file

Artinya perubahan di file catatan.txt sudah berada di kondisi staged. Jika kita perlu membatalkan perubahan yang sudah terlanjur di staged bisa kita lakukan perintah git reset nama_file

Contoh:

git reset catatan.txt

Output:

Unstaged changes after reset:
M   catatan.txt

Jika kita cek lagi dengan git status

$ git status
On branch main
Changes not staged for commit:
 (use "git add <file>..." to update what will be committed)
 (use "git restore <file>..." to discard changes in working directory)
        modified:   catatan.txt

no changes added to commit (use "git add" and/or "git commit -a")

Sekarang kita bisa menghapus perubahan tersebut dengan melakukan perintah yang sama seperti sebelumnya.

git checkout catatan.txt

Maka perubahan tersebut sudah tidak ada lagi, jika dicek kembali statusnya maka akan seperti berikut.

$ git status
On branch main
nothing to commit, working tree clean

Membatalkan Perubahan yang Sudah Committed

Bagaimana jika file yang kita ubah sudah di commit atau dalam kata lain sudah dalam kondisi committed padahal kita ingin mengambalikannya?

Jika kejadian seperti ini terjadi, maka kita perlu mengetahui terlebih dahulu commit hash dari perubahan tersebut.

Misal di file yang sama tadi kita akan melakukan perubahan dengan menambahkan baris baru "Belajar membatalkan commit git".

Sekarang kita cek catatan perubahan yang terjadi dengan git log.

$ git log
commit c88084d9f78e4d297c7e513c154e38751730e273 (HEAD -> main)
Author: Tomipedia <developer@tomipedia.com>
Date:   Sat Oct 21 22:31:19 2023 +0700

   menambahkan baris baru belajar membatalkan commit git

commit 9b4684b88300ffb245db54bbdde4bb38cfd2cacc
Author: Tomipedia <developer@tomipedia.com>
Date:   Wed Sep 13 23:17:49 2023 +0700

    menambahkan baris baru di file catatan.txt

commit 735905ec49dc43c2eeb96cbdd629e6c582a03d58
Author: Tomipedia <developer@tomipedia.com>
Date:   Wed Sep 13 21:49:43 2023 +0700

    menambahkan file catatan.txt

Tampak bahwa sudah ada commit baru dengan message menambahkan baris baru belajar membatalkan commit git dengan tujuh karakter pertama commit hash c88084d.

Pada kasus sekarang ceritanya kita ingin kembali ke commit sebelumnya yaitu 9b4684b, atau dengan kata lain hendak membatalkan commit c88084d.

Caranya dengan melakukan perintah git checkout commit_hash_tujuan nama_file.

Contoh:

git checkout 9b4684b catatan.txt

Jika kita cek status, maka akan ada kondisi staged, karena tujuan kita hendak membatalkan perubahan yang sudah committed, lakukan perintah git reset seperti pada contoh sebelumnya.

git reset catatan.txt

Sampai di sini kita telah berhasil mengembalikan file catatan ke kondisi commit sebelumnya. Namun perlu dicatat bahwa praktek ini tidak berarti menghapus commit c88084d. Jika tidak percaya silahkan lakukan perintah git log.

Membatalkan Semua Perubahan yang Sudah Dilakukan

Cara lain untuk membatalkan semua perubahan yang sudah dilakukan bisa dengan menggunakan perintah git revert -n commit_hash lalu lakukan reset.

Andaikan commit hash c88084d akan dibatalkan seperti pada contoh sebelumnya. Maka kita juga bisa membatalkannya dengan git revert.

Contoh:

git revert -n c88084d

Selanjutnya lakukan git reset

git reset catatan.txt
Tomi Nurhidayat

Data Science dan Machine Learning Enthusiast | SEO Enthusiast.

Previous Post Next Post