Tutorial Git #6: Perintah untuk Membatalkan Revisi

Pada tutorial git 05, kita sudah belajar cara meilihat perbedaa di setiap revisi, Sekarang kita akan belajar, cara membatalkan sebuah revisi.

Terkadang pad perubahan yang kita lakukan terjadi kesalahan dan kita ingin mengebalikanya seperti keadaan sebelumnya. Maka kita perlu membatalkan dan memerintahkan git untuk mengembalikanya. Ada beberapa perintah yang digunakan di antaranya: git checkout, git reset,, dan git revert.

Membatalkan Perubahan

Jika revisi kita belum staged atupun mengetahui, kita bisa mengembalikan mengunakan perintah git checkout nama_file.html.

Contoh: Misalkan kita akan mengubah isi dari file index.html pada repositori project-01.

Sebelum diubah:

HTML
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Belajar Git - Project 01</title>
    </head>
    <body>
        <p>Hello Dunia!, Saya sedang belajar Git</p>
    </body>
</html>
Klik untuk membuka dan melihat lebih banyak

Setelah diubah:

HTML
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Belajar Git - Project 01</title>
    </head>
    <body>
        <p>Hello Dunia!, Saya sudah belajar Git</p>
        <p>Belajar git ternyata cukup menyenangkan</p>
    </body>
</html>
Klik untuk membuka dan melihat lebih banyak

Hasil git diff

DIFF
$ git diff
diff --git a/index.html b/index.html
index c5082e6..115efcb 100644
--- a/index.html
+++ b/index.html
@@ -5,6 +5,7 @@
         <title>Belajar Git - Project 01</title>
     </head>
     <body>
-        <p>Hello Dunia!, Saya sedang belajar Git</p>
+        <p>Hello Dunia!, Saya sudah belajar Git</p>
+        <p>Belajar git ternyata cukup menyenangkan</p>
     </body>
 </html>
Klik untuk membuka dan melihat lebih banyak

Sekarang kita akan membatalkan perubahan tersebut. Karena kita belum melakukan stage dan commit, maka kita bisa menggunakan perintah:

BASH
git checkout index.html
Klik untuk membuka dan melihat lebih banyak

Perubahan yang baru saja kita lakukan akan dibatalkan. Kalau tidak percaya, coba saja periksa file yang sudah diubah tadi atau cek dengan perintah git status.

BASH
$ git status
On branch master
nothing to commit, working directory clean
Klik untuk membuka dan melihat lebih banyak

Hati-hati! Terkadang perintah ini sangat berbahaya, karena akan menghapus perubahan yang baru saja dilakukan.

Bila kita sudah mengubah banyak hal, maka itu akan sia-sia setelah menjalankan perintah ini.

Membatalkan Perubahan File yang Sudah dalam Kondisi staged

Kondisi staged merupakan kondisi file yang sudah di add (git add), namun belum disimpan (git commit) ke dalam Git.

Sebagai contoh, kita lakukan perubahan lagi di file index.html seperti pada contoh sebelumnya.

DIFF
$ git diff
diff --git a/index.html b/index.html
index c5082e6..c99aa5b 100644
--- a/index.html
+++ b/index.html
@@ -5,6 +5,7 @@
         <title>Belajar Git - Project 01</title>
     </head>
     <body>
-        <p>Hello Dunia!, Saya sedang belajar Git</p>
+        <p>Hello Dunia!, Saya sudah belajar Git</p>
+        <p>Belajar git ternyata gampang-gampang susah</p>
     </body>
 </html>
Klik untuk membuka dan melihat lebih banyak

Setelah itu, kita ubah kondisi file menjadi staged dengan perintah:

BASH
git add index.html
Klik untuk membuka dan melihat lebih banyak

Cek statusnya dulu:

BASH
$ git status
On branch master
Changes to be mengetahui:
  (use "git reset HEAD <file>..." to unstage)

    modified:   index.html
Klik untuk membuka dan melihat lebih banyak

Nah, file index.html sudah masuk ke dalam kondisi staged. Untuk mengubahnya menjadi kondisi modified, kita bisa menggunakan perintah git reset.

BASH
git reset index.html
Klik untuk membuka dan melihat lebih banyak

Cek statusnya lagi:

BASH
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be mengetahui)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   index.html

no changes added to commit (use "git add" and/or "git commit -a")
Klik untuk membuka dan melihat lebih banyak

Sekarang file index.html sudah dalam kondisi modified, kita bisa membatalkan perubahannya dengan perintah git checkout seperti contoh sebelumnya.

Maka perubahan yang kita lakukan akan dibatalkan, 😄.

Petani Kode

Sistem Git

Membatalkan Perubahan File yagn Sudah dalam Kondisi Committed

Sekarang bagaimana kalau filenya sudah dalam kondisi mengetahui dan kita ingin mengembalikannya? Untuk melakukan ini, kita harus mengetahui nomer commit, kemudian mengembalikan perubahannya seperti pada nomer commit tersebut.

Misalkan, kita ubah kembali file index.html.

BASH
$ git diff
diff --git a/index.html b/index.html
index c5082e6..3c150a8 100644
--- a/index.html
+++ b/index.html
@@ -5,6 +5,7 @@
         <title>Belajar Git - Project 01</title>
     </head>
     <body>
-        <p>Hello Dunia!, Saya sedang belajar Git</p>
+        <p>Hello Dunia!, Saya sudah belajar Git</p>
+        <p>Belajar Git Greget!</p>
     </body>
 </html>
Klik untuk membuka dan melihat lebih banyak

Kemudian kita melakuan commit.

BASH
git add index.html
git commit -m "belajar git greget!"
Klik untuk membuka dan melihat lebih banyak

Sekarng kita akan melihat nomer commit dengan perintah git log.

Petani Kode

Sistem Git

Kita akan mengembalikan kondisi file index.html, seperti pada commit sebelumnya. Maka kita bisa menggunakan perintah:

BASH
git checkout b05f7d05c9298f2cd11b870369f3cf4b2350eca7 index.html
Klik untuk membuka dan melihat lebih banyak

Seperti mesin waktu, kita sudah mengembalikan keadaan file index.html seperti keadaan saat commit tersebut. Namun, saat ini kondisi index.html dalam keadaan staged. Kita bisa kembalikan ke dalam kondisi modified dengan perintah git reset.

BASH
git reset index.html
Klik untuk membuka dan melihat lebih banyak

Pada contoh tersebut, kita sudah berhasil mengembalikan file index.html ke dalam keadaan seperti commit sebelumnya.

Apabila kita ingin mengembalikan seluruh file dalam commit, kita cukup melakukan checkout ke nomer commit saja, tanpa diikuti nama file. Contoh:

BASH
git checkout ac6d798f98bac5fad693ef8159f957c5b0805c23
Klik untuk membuka dan melihat lebih banyak

Catatan: Perintah ini akan mengembalikan semua file dalam kondisi pada nomer commit yang diberikan, namun bersifat temporer.

Kembali ke 3 Commint sebelumnya

Untuk kembali ke 3 commit sebelumnya, kita bisa menggunakan perintah berikut.

BASH
git checkout HEAD~3 index.html
Klik untuk membuka dan melihat lebih banyak

Membatalkan Semua Perubahan yang ada

Jika kita ingin mengembalikan semua file ke suatu commitm kita bisa melakaukan dengan perintah:

BASH
git revert -n <nomer commit>
Klik untuk membuka dan melihat lebih banyak

Contoh:

BASH
git revert -n 2400ba0e258bd6a144caa273012b130d6baa5e42
Klik untuk membuka dan melihat lebih banyak

Akhit Kata

OK, sekian dulu tutorial ke-6 ini. Rasanya agak kepanjangan. Terima kasih sudah membaca. Sampai jumpa di tutorial ke-7.

Mulai mencari

Masukkan kata kunci untuk mencari artikel

↑↓
ESC
⌘K Pintasan