Bagi para pengembang website atau software, Git menjadi alat yang penting dalam pengelolaan project. Namun, tidak jarang kita melakukan kesalahan saat melakukan commit, entah itu karena pesan commit yang salah, file yang tidak seharusnya di-commit, atau perubahan yang perlu dibatalkan. Git sendiri menyediakan beberapa perintah untuk membatalkan revisi pada Git, antara lain seperti git checkout, git reset, dan git revert
Ada beberapa alasan mengapa Anda mungkin perlu membatalkan commit yang sudah dibuat:
Apabila revisi atau commit yang sudah dilakukan dalam keadaan belum stagged, maka kita bisa melakukan pembatalan dengan perintah git chekout :
git checkout <nama-file>
Kita ambil contoh apabila kita ingin merubah file index.php di repository kita yang sudah dibuat.
index.php sebelum dirubah
echo "Saya Sedang Belajar";
index.php setelah dirubah
echo "Saya Sedang Belajar Git";
Kita dapat menjalkankan perintah git diff index.php untuk melihat perubahanya :
$ git diff
diff --git a/index.php b/index.php
index 66cb134..3702ac3 100644
--- a/index.php
+++ b/index.php
@@ -1,5 +1,5 @@
<?php
echo "Sedang Sedang Belajar";
- echo "Saya Sedang Belajar";
+ echo "Saya Sedang Belajar Git";
?>
Dari penggunaan Git Diff diatas, terlihat perubahan yang sudah kita lakukan pada file index.php dengan keadaan kondisi file yang belum Added dan commited. Kita dapat menggunakan perintah :
git checkout index.php
Akan tetapi kalian harus berhati-hati, karena perintah Git Diff ini dapat menjadi malapetaka karena akan menghapus perubahan yang barusaja dilakukan. Apabila kita menjalankan perintah ini setelah melakukan banyak perubahan, maka semua yang sudah kita rubah akan hilang percuma.
Staged merupakan kondisi dimana file sudah dilakukan perubahan serta di add dengan perintah, akan tetapi belum dilakukan commit . Dalam kondisi ini kita untuk membatalkan perubahanya dapat menggunakan perintah :
git reset <nama-file>
Dalam hal ini kita akan mencoba melakukan perubahan pada file index.php.
echo "Saya Sedang Belajar Git";
Setelah itu kita buat file tersebut memasuki kondisi staged dengan perintah :
git add index.php
Lakukan pengecekan dengan menggunakan perintah :
git status
Hasil Pengecekan dengan perintah 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: index.php
no changes added to commit (use "git add" and/or "git commit -a")
Kita telah berhasil melakukan perubahan pada file index.php dari staged menjadi modified file, selanjutnya kita melakukan pembatalan dengan perintah :
git reset index.php
Hasil dari perintah diatas :
$ 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: index.php
no changes added to commit (use "git add" and/or "git commit -a")
Setelah berhasil mengubah status dari file index.php dari staged ke modified dan selanjutnya kita hanya tinggal membatalkan perubahanya dengan perintah :
git checkout index.php
Ketika kita sydag menjalankan pertintah git commit pada file project kita, kita membuat status dari file tersebut menjadi commited, kita bisa membatalkan perubahan dari file tersebut, akan tetapi untuk membatalkan perubahanya kita harus mengetahui dari nomor commit dari perubahan sebelumnya ke nomor commit yang kita ingikan
Contoh penggunanya :
$ git diff
diff --git a/index.php b/index.php
index 66cb134..3702ac3 100644
--- a/index.php
+++ b/index.php
@@ -1,5 +1,5 @@
<?php
echo "Sedang Sedang Belajar";
- echo "Saya Sedang Belajar";
+ echo "Saya Sedang Belajar Git";
?>
Selanjutnya kita akan merubah file index.php menjadi commited dengan perintah :
git add index.php
git commit -m "first commit"
Setelah status file tersebut menjadi commited. kita dapat melihat nomor commitnya dengan perintah :
git log
Hasil dari perintah diatas :
$ git log
commit 6da9994ddb4c922b151c732da7b413f9ccfb86a6 (HEAD -> main)
Author: Alvien01 <[email protected]>
Date: Tuesday Aug 20 10:14:11 2024 +0700
first commit
commit a6403be16a7d20f0f339d672f45567f968825b8d
Author: Alvien01 <[email protected]>
Date: Tuesday Aug 20 10:14:11 2024 +0700
edit index.php
commit a5ed4897f2c434f85451ce6602dba8c92afae76b
Author: Alvien01 <[email protected]>
Date: Tuesday Aug 20 10:14:11 2024 +0700
git diff
commit 70cbe6b3844acdcfed538d044c35f147d5e97cd3
Author: Alvien01 <[email protected]>
Date: Tuesday Aug 20 10:14:11 2024 +0700
ubah index.php
commit 52978163d8f22e2c97a275ab23657100eb277165
Author: Alvien01 <[email protected]>
Date: Tuesday Aug 20 10:14:11 2024 +0700
belajar git
Kita dapat mengembalikan file index.php pada commit sebelumnya dengan perintah :
git checkout a6403be16a7d20f0f339d672f45567f968825b8d index.php
Apabila kita ingin mengubahnya menjadi modified atau not staged maka kita dapat melakukannya dengan perintah :
git reset index.php
Apabila kita ingin mengembnalikan file commit sebelumnya dengan jumlah tertentu, kita dapat menggunaakn perintah HEAD, berikut contoh penggunaanya :
git checkout HEAD~4 index.php
HEAD~4 berarti anda memilih 4 commit sebelumnya, apabila anda ingin beberapa commit saja sesuai yang Anda tentukan anda dapat menambahkan parameter ~JumlahCommit yang ingin anda masukan. Baca Artikel Menarik lainya hanya di RuangBacaku