Pada tutorial sebelumnya, kita sudah belajar tentang cara melihat perubahan revisi pada Git dengan perintah git diff. Pada tutorial ini kita akan belajar tentang cara membatalkan revisi yang telah dibuat pada proyek Git.
Pada saat kita membuat sebuah proyek, terkadang kita membuat kesalahan pada coding dan ingin mengembalikan file proyek kita ke commit sebelumnya yang sudah kita buat.
Seperti yang telah kita bahas pada tutorial sebelumnya tentang pengertian dan kegunaan git, salah satunya adalah Git menjadi pengontrol versi pada sistem yang sedang kita bangun.
Untuk membatalkan perubahan revisi pada Git, kita bisa menggunakan perintah git checkout
, git reset
dan git revert
. Masing-masing perintah yang disebutkan tersebut memiliki kegunaannya masing-masing. Tergantung kondisi status file pada saat ingin dibatalkan perubahannya, baik status filenya dalam kondisi modified, stagged atau commited.
Membatalkan Perubahan Revisi Pada File Dengan Status Modified
Jika status file dalam kondisi modified atau dalam arti lain kita sudah membuat perubahan pada file, tapi belum kita tandai dengan perintah git add .
, maka kita bisa membatalkan perubahan revisinya dengan menggunakan perintah git checkout
.
Sekarang kita coba buat perubahan pada file index.html pada proyek_baru yang sudah kita buat pada tutorial sebelumnya.
index.html sebelum diubah :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Belajar Git #6 : Git Diff - www.agussuratna.net</title> </head> <body> <h1> Belajar Git Untuk Pemula Di <a href="https://www.agussuratna.net/git-commit"> www.agussuratna.net </a> </h1> <p>Kumpulan tutorial git lengkap untuk pemula</p> </body> </html>
Ubah file index.html sehingga menjadi seperti berikut :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Tutorial Git #7 : Membatalkan Revisi Git</title> </head> <body> <h1>Halo, Saya Belajar Git dasar di agussuratna.net</h1> </body> </html>
Setelah diubah jangan lupa disimpan dan jangan lakukan perintah apapun dulu, karena kita akan mencoba membatalkan perubahan revisi pada file yang berstatus modified.
Sebagai pengingat :
- modified adalah kondisi file yang sudah ada perubahan didalamnya tapi belum ditandai dengan
git add
. - stagged adalah kondisi file yang sudah memiliki perubahan dan sudah ditandai dengan git add.
- commited adalah kondisi file yang sudah memiliki perubahan di dalamnya, kemudian sudah ditandai dengan
git add
dan sudah dilakukancommit
.
Ketik perintah git diff
untuk melihat perbandingan perubahan yang terjadi pada index.html.
Perubahan revisi pada kondisi modified
Selanjutnya kita akan mencoba membatalkan perubahan pada revisi tadi dengan menggunakan perintah git checkout
. Kita juga harus menentukan nama file yang ingin dibatalkan perubahannya, karena jika kita tidak menentukan filenya, pada saat kita sedang mengerjakan proyek besar dan sudah banyak membuat perubahan di dalamnya, dikhawatirkan bisa membatalkan semua perubahan yang kita buat pada file lainnya juga, jadi akan mengganggu file lain yang tidak ingin kita batalkan.
Contoh seperti berikut ini :
git checkout index.html
Maka Git akan membatalkan perubahan yang terjadi pada file index.html.
Seperti yang terlihat pada gambar di atas, isi file index.html kembali seperti semula sebelum kita membuat perubahan.
Membatalkan Perubahan Revisi Pada File Dengan Status Stagged
Sekarang kita akan mencoba membatalkan perubahan revisi pada file yang berstatus stagged. Silahkan ubah lagi isi dari file index.html.
Sebelum diubah :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Belajar Git #6 : Git Diff - www.agussuratna.net</title> </head> <body> <h1> Belajar Git Untuk Pemula Di <a href="https://www.agussuratna.net/git-commit"> www.agussuratna.net </a> </h1> <p>Kumpulan tutorial git lengkap untuk pemula</p> </body> </html>
Setelah diubah :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Belajar Git Revisi di www.agussuratna.net</title> </head> <body> <h1>Membuat perubahan revisi kondisi stagged</h1> </body> </html>
Sekarang gunakan perintah git add
untuk menandai file index.html dan statusnya berubah menjadi stagged.
git add index.html
Selanjutnya kita cek status file index.html dengan perintah :
git status
Sekarang status file index.html sudah menjadi stagged.
Selanjutnya kita batalkan perubahan revisi pada file yang berstatus stagged dengan cara menggunakan perintah git reset
. Perintah git reset akan merubah kembali status index.html dari stagged menjadi modified.
git reset index.html
Jika statusnya sudah berubah kembali menjadi modified, kita bisa langsung menggunakan perintah git checkout
untuk membatalkan revisi seperti cara sebelumnya.
git checkout index.html
Perhatikan gambar berikut :
Perubahan revisi pada file yang sudah berstatus stagged pun berhasil kita lakukan.
Membatalkan Revisi Pada File Dengan Status Commited
Untuk membatalkan revisi pada file yang sudah berstatus commited, kita harus mengetahui terlebih dulu nomor commit-nya.
Untuk mencobanya, silahkan coba ubah lagi file index.html menjadi seperti berikut :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Belajar Git #7 : Mengembalikan Revisi Git - www.agussuratna.net</title> </head> <body> <h1>Semangat belajar Git di www.agussuratna.net</h1> </body> </html>
Kemudian tandai file index.html :
git add index.html
Selanjutnya lakukan commit
agar status file berubah menjadi commited.
git commit -m "mengubah judul h1"
Seperti pada contoh gambar berikut :
Sampai di sini status file index.html sudah menjadi commited.
Kita akan coba membatalkan revisi terakhirnya dengan cara kembali ke commit
sebelumnya. Pertama, kita harus mengetahui nomor commit yang ingin kita tuju, kita akan lihat nomor commit-nya dengan perintah :
git log
Kemudian pilih nomor commit tujuan kita dan gunakan perintah git checkout
seperti berikut :
git checkout nomor_commit nama_file
Misal :
git checkout 2cee39bd7a0ad0e8b2199c964c9111ba2cf22fe0 index.html
Seperti yang terlihat pada gambar di atas. kita cantumkan nomor commit yang ingin kita tuju untuk kembali pada perintah git checkout
dan juga cantumkan nama file yang ingin kita kembalikan ke versi sebelumnya, supaya tidak mengganggu file lain.
Cara Kembali Beberapa Commit Sebelumnya
Jika dalam pengerjaan sebuah proyek, pasti kita sudah memiliki banyak sekali commit. Jika kita ingin kembali ke beberapa commit sebelumnya, kita juga bisa menggunakan git checkout.
Misal jika kita ingin mengambalikan index.html ke 3 commit sebelumnya, maka kita bisa gunakan perintah berikut.
git checkout HEAD~3 index.html
Membatalkan Semua Perubahan Dengan Git Revert
Untuk membatalkan semua perubahan dan mengembalikannya ke sebuah commit, kita bisa menggunakan perintah git revert.
git revert -n nomor_commit
Contoh :
git revert -n 2cee39bd7a0ad0e8b2199c964c9111ba2cf22fe0
Kesimpulan
- Untuk mengembalikan perubahan pada file modified, gunakan perintah
git checkout nama_file
. - Untuk mengambalikan perubahan revisi pada file stagged, kembalikan dulu file ke status modified dengan perintah
git reset nama_file
, kemudian gunakan perintahgit checkout nama_file
untuk membatalkan revisi. - Untuk mengembalikan perubahan pada file yang sudah dilakukan commit (commited) ke commit tertentu, gunakan
git checkout nomor_commit_tujuan nama_file
. - Untuk kembali ke 3 commit sebelumnya, gunakan perintah
git checkout HEAD~3 namafile
. - Untuk membatalkan semua perubahan dan kembali ke sebuah commit, gunakan perintah
git revert -n nomor_commit_tujuan
.
Demikian tutorial tentang Membatalkan Revisi Git, Selanjutnya kita akan mempelajari tentang cara Membuat Cabang atau Branch pada Git.
Referensi :
- https://www.malasngoding.com/membatalkan-revisi-git/