Mengatasi Error dan Bug pada Aplikasi dengan Cara Kembali ke Commit Sebelumnya dalam Git

Ngulik Kode - Git adalah tools yang sangat powerful dan version control system yang sangat populer di kalangan developer. Begitulah cara developer dan tim teknis berkolaborasi dan bekerja sama dalam project. 

Tapi, apa yang terjadi jika kalian secara tidak sengaja meng-commit sebuah file dan menyadari bahwa kalian seharusnya tidak melakukannya karena file tersebut masih ada yang salah? 

Tidak perlu khawatir karena Git memungkinkan kalian untuk membatalkan kesalahan tersebut dan kembali ke versi sebelumnya dari project kalian. 

Salah satu fitur Git yang paling membantu adalah kemampuan untuk membatalkan perubahan yang kalian buat pada project dari waktu ke waktu. 

Pada artikel kali ini, kita akan mempelajari cara membatalkan perubahan di Git tergantung pada status repository Git kalian.

Cara Mengembalikan Perubahan Local Unstaged Changes di Git

Katakanlah kalian sedang mengerjakan di lokal kalian. Kalian membuat dan menyimpan beberapa perubahan ke file secara lokal, tetapi kalian ingin membuangnya.

Saat kalian belum melakukan perubahan tersebut, kalian belum menggunakan perintah git add.

Dalam hal ini, kalian perlu menggunakan perintah git restore. Perintah git restore akan terlihat seperti ini:
git restore filename

Jadi, katakanlah kalian memiliki file README.md dan kalian secara tidak sengaja menulis dan menyimpan beberapa teks yang ingin kalian buang.

Pertama kalian bisa menggunakan perintah git status untuk melihat status repository Git kalian.

On branch main

Your branch is up to date with 'origin/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:   README.md


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

 Inilah cara kalian membatalkan perubahan pada file README.md:

git restore README.md

Kemudian kalian dapat menggunakan git status lagi untuk memeriksa status repository:

On branch main

Your branch is up to date with 'origin/main'.


nothing to commit, working tree clean

Sekarang, kalian telah berhasil membuang perubahan terbaru dan kembali ke versi commit-an yang terakhir dari project kalian.

Cara Mengembalikan Perubahan Local Staged Changes di Git

Sebuah file akan masuk ke staged ketika kalian telah menggunakan perintah git add.

Jadi, katakanlah kalian membuat beberapa perubahan pada file README.md secara lokal, kalian menggunakan perintah git add, dimana itu akan masuk ke staged changes, dan kemudian kalian menyadari bahwa teks tersebut mengandung beberapa kesalahan.

Pertama, jalankan git status untuk memastikan kalian telah menambahkan filenya ke staged changes (artinya kalian telah menggunakan git add):
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
modified:   README.md

Seperti yang kalian lihat dari output git status di atas, kalian dapat menggunakan perintah berikut untuk membatalkan perubahan kalian:

git restore --staged filename

Perintah ini akun menghapus file yang berada staged changes, tetapi akan tetap menyimpan perubahan yang ada di file kalian.

Jalankan git status lagi:

On branch main

Your branch is up to date with 'origin/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:   README.md


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

Sekarang, untuk membuang perubahan yang kalian buat dan mengembalikan file ke konten aslinya, gunakan:

git restore README.md

Dan jalankan git status lagi:

On branch main

Your branch is up to date with 'origin/main'.


nothing to commit, working tree clean

Sekarang, perubahan yang kalian buat telah hilang dan file dikembalikan ke versi commit awal.

Cara Mengembalikan Perubahan Local Committed Changes di Git

Katakanlah kalian membuat perubahan pada file, lalu kalian tambahkan ke staged changes dengan perintah git add, dan kalian meng-commit file tersebut dengan perintah git commit.

Ini berarti bahwa commit hanya ada secara local dan belum dipush ke remote repository.

Pertama, gunakan git status untuk memeriksa apakah kalian meng-commit sebuah file:
On branch main
Your branch is ahead of 'origin/main' by 1 commit.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean

Selanjutnya, jika kalian ingin membatalkan commit terkahir di local kalian, gunakan perintah git log:

Commit terbaru akan memiliki commit hash (serangkaian angka dan karakter yang panjang) dan (HEAD -> main) di akhir - ini adalah commit yang ingin kalian batalkan.

Commit kedua hingga terakhir memiliki commit hash dan (origin/main) di akhir - ini adalah commit yang ingin kalian pertahankan dan commit yang kalian push ke remote repository. Setelah itu, gunakan perintah berikut untuk membatalkan commit:

git reset --soft HEAD~

Sekarang, mari kita gunakan git log lagi.

Kalian akan melihat commit hash, dan (HEAD -> main, origin/main) di akhir.

Commit terakhir yang kalian buat tidak lagi menjadi bagian dari riwayat repository dan telah dihapus.

Perintah di atas mengembalikan semuanya ke versi file sebelum commit yang tidak disengaja atau salah dan telah mengembalikan satu commit.

Mari kita periksa git status lagi. 

On branch main

Your branch is up to date with 'origin/main'.


Changes to be committed:

  (use "git restore --staged <file>..." to unstage)

modified:   README.md

Perlu diingat bahwa meskipun perintah git reset --soft HEAD~ membatalkan commit terbaru kalian, tapi tetap menyimpan perubahan yang kalian buat.

Cara Mengembalikan Perubahan Public Committed Changes di Git

Bagaimana jika kalian membuat perubahan pada file, lalu kalian masukkan ke staged dengan git add, meng-commitnya dengan perintah git, dan push ke remote repository dengan git push - tapi kalian sadar bahwa kalian seharusnya tidak meng-commit file itu sejak awal?

Apa yang kalian lakukan?

Pertama, kalian gunakan git status untuk memeriksa status repository git:
On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

Pada bagian atas, kalian melihat bahwa setiap commit memliki commit hash, dimana itu adalah serangkaian angka dan karakter yang panjang.

Untuk melihat versi pendek dari commit hash, gunakan perintah berikut:

git log --oneline

Dengan perintah git log, kalian bisa memerikan commit mana yang ingin kalian kembalikan.

Katakan commit terakhir kalian memiliki commit hash bb3ccf4, yang mana diikuti (HEAD -> main, origin/main), dan pesan commit seperti "commit README.md file".

Untuk mengembalikan commit yang spesifik, gunakan perintah berikut:

git revert bb3ccf4 --no-edit

 Perintah diatas akan mengembalikan perubahan karena membuat commit baru dan mengembalikan file tersebut ke keadaan sebelumnya, seolah tak pernah berubah.

Yang terakhir, gunakan git push untuk push perubahan ke remote branch.

Setelah kalian melakukannya, kalian akan melihat pesan commit yang sama seperti yang sebelumnya tapi dengan kata revert didepannya, seperti 'Revert "commit README.md file"'.

Ingatlah bahwa riwayat commit akan menampilkan kedua commit secara terpisah:

Revert "commit README.md file"

@johndoe

johndoe committed 9 minutes ago


commit README.md file

@johndoe

johndoe committed 16 minutes ago 

Kesimpulan

Dan begitulah. Kalian sekarang sudah tau caranya untuk membatalkan perubahan di Git. Semoga artikel ini bermanfaat untuk kalian. Terima kasih telah membaca dan jangan lupa bagikan juga ke teman-teman kalian!

 

0 comments

Posting Komentar