Nggak Sengaja Ngaco di Git? Tenang, Begini Balikinnya
Pernah nggak sih lagi asyik ngoding, terus tiba-tiba sadar kalau kamu barusan ngelakuin sesuatu yang "ngaco" di Git? Mungkin salah commit
, salah branch
, atau malah nggak sengaja hapus file penting? Kalau iya, santai aja. Kamu nggak sendirian. Panik itu wajar, tapi kabar baiknya, Git itu diciptakan dengan fitur-fitur yang canggih buat balikin keadaan. Git itu kayak punya mesin waktu pribadi buat project kamu.
Banyak developer, apalagi yang baru belajar Git, ngerasa takut atau panik kalau udah bikin "kesalahan". Padahal, "kesalahan" di Git itu jarang banget bener-bener permanen dan nggak bisa dibalikin. Kebanyakan skenario ngaco itu bisa diatasi kok, asalkan kamu tau tools dan triknya.
Artikel ini bakal ngebahas beberapa skenario umum pas ngaco di Git dan gimana cara balikinnya biar project kamu aman lagi. Kita bakal pake bahasa yang santai biar gampang dipahami, tapi tetep akurat soal perintah Git-nya ya.
Git Itu Kuat dan Punya Memori Ajaib
Sebelum masuk ke skenario, penting banget buat ngerti satu hal: Git itu nyimpen semua perubahan di project kamu. Setiap kali kamu commit
, Git itu kayak ngambil snapshot dari project kamu pada saat itu. Dan hebatnya, Git juga nyimpen histori dari setiap gerakan yang kamu lakuin di repository lokal kamu. Nah, memori ajaib inilah yang jadi penyelamat kita.
Tools paling sakti yang sering dilupakan tapi bisa jadi pahlawan super kamu pas lagi panik adalah git reflog
. Apa itu reflog
? Gampangnya, reflog
(reference logs) itu nyimpen catatan setiap kali HEAD
(pointer yang nunjuk ke commit terakhir di branch kamu saat ini) berubah. Entah itu karena kamu commit
, checkout
ke branch lain, merge
, rebase
, atau bahkan reset
. Semua terekam di situ! Ini beda sama git log
yang cuma nunjukin histori commit
. reflog
itu nyimpen histori dari perintah Git yang kamu jalankan. Jadi, kalaupun kamu ngelakuin reset --hard
dan ngerasa ilang semua, reflog
mungkin masih inget di mana HEAD
kamu sebelum reset itu.
Pake git reflog
sering-sering pas lagi panik. Output-nya bakal kelihatan kayak gini:
a1b2c3d HEAD@{0}: commit: Fix button alignment
e4f5g6h HEAD@{1}: checkout: moving from feature/v2 to main
i7j8k9l HEAD@{2}: commit (initial): Initial project setup
Setiap baris nunjukin ID commit (yang disingkat) dan apa yang terjadi (commit, checkout, dll.) beserta urutannya (HEAD@{0}
itu yang paling baru, HEAD@{1}
itu yang sebelumnya, dst.). ID commit inilah kunci buat balikin keadaan.
Oke, sekarang kita masuk ke skenario-skenario umum ngaco di Git dan gimana cara ngatasinnya.
Skenario 1: Abis Commit, Eh Ternyata Commit Message-nya Salah Ketik atau Ada yang Ketinggalan Dikit!
Ini sering kejadian. Udah nulis commit message panjang-panjang, ternyata typo. Atau udah commit, terus sadar ada file kecil yang kelupaan di-add atau ada perbaikan minor yang harusnya masuk ke commit yang sama.
- Masalah: Commit terakhir kurang sempurna (pesan salah atau ada perubahan minor yang belum masuk).
- Solusi:
git commit --amend
Perintah ini tuh gunanya buat "ngubah" commit terakhir kamu. Kalau kamu jalanin git commit --amend
:
- Git bakal buka text editor kamu (sesuai setting Git) buat ngubah commit message dari commit terakhir. Kamu bisa edit sepuasnya di situ.
- Kalau ada perubahan (file baru atau modifikasi) yang udah kamu
git add
tapi belum di-commit,git commit --amend
bakal otomatis masukin perubahan yang udah di-stage itu ke dalam commit terakhir.
Contoh: Kamu commit: git commit -m "Fix styling header"
Terus sadar ada typo: "Styling" harusnya "Styling". Lalu sadar juga ada CSS yang kelupaan di-stage dan di-commit. Kamu perbaiki typo di file, git add
file CSS yang ketinggalan. Jalankan: git commit --amend
Git bakal buka editor, benerin commit message jadi "Fix Styling header". Simpan & keluar editor. Git bakal bikin commit baru yang menggantikan commit "Fix styling header" tadi. Commit baru ini ID-nya beda, commit message-nya udah bener, dan udah nambahin perubahan CSS yang ketinggalan.
Penting: git commit --amend
itu mengganti commit terakhir, bukan menambah commit baru. Ini artinya histori commit kamu berubah. Jangan pakai ini kalau commit terakhir itu udah kamu push
ke remote repository yang dipakai bareng orang lain, karena bisa bikin histori di lokal kamu beda sama di remote dan nyusahin kolaborasi (nantinya harus force push yang bahaya). Gunakan ini hanya untuk commit yang belum dipush.
Skenario 2: Salah Committing ke Branch yang Salah! Perubahannya Harusnya di Branch Lain.
Kamu lagi di branch fitur-a
, ngoding, terus tanpa sadar git add
dan git commit
. Eh, pas diliat git log
, kok commit-nya malah masuk ke branch main
(atau branch lain)?
- Masalah: Commit terakhir ada di branch yang salah. Perubahan tersebut harusnya ada di branch lain.
- Solusi 1 (Commit terakhir belum dipush): Gabungan
git reset
dangit stash
(ataugit restore
). - Solusi 2 (Commit terakhir sudah dipush, atau mau cara yang lebih aman untuk history):
git revert
(untuk membatalkan commit) ataugit cherry-pick
(untuk memindahkan commit).
Penjelasan Solusi 1 (Reset & Stash):
- Pastikan kamu ada di branch tempat commit yang salah berada (misal
main
). - Jalankan
git reset HEAD~1
. Perintah ini bakal "membatalkan" commit terakhir di branchmain
.
* HEAD~1
artinya satu commit sebelum commit terakhir HEAD
. * Default git reset
adalah --mixed
. Ini artinya: * Commit terakhir dihapus dari histori branch main
. Perubahan dari commit itu tetap ada di working directory kamu (file-file di folder project), tapi statusnya unstaged* (belum di git add
). Kalau kamu pakai git reset --soft HEAD~1
: Commit dihapus dari histori, perubahannya tetap ada di staging area* (udah di git add
). Pilih ini kalau kamu mau langsung commit lagi di branch yang bener tanpa git add
lagi.
- Sekarang, perubahan tadi udah nggak di-commit lagi. Kalau kamu mau pindahin ke branch lain, kamu bisa
git stash
. Ini bakal nyimpen semua perubahan yang belum di-commit (baik yang staged maupun unstaged) ke "laci penyimpanan" sementara.git stash save "Perubahan dari commit yang salah"
(pesan opsional). git checkout
. Pindah ke branch yang seharusnya.git stash pop
. Ini bakal ngeluarin perubahan yang tadi kamu simpen dari "laci" dan menerapkannya di branch ini. Perubahan tadi akan muncul sebagai unstaged atau staged (tergantung waktustash
dan opsi yang dipakai, tapi biasanya balik ke kondisi sebelumgit stash
).git add .
dangit commit -m "Pesan commit yang benar"
di branch yang tepat ini.
Voila! Commit yang salah di branch sebelumnya udah hilang (secara lokal), dan perubahannya udah berhasil kamu commit di branch yang bener.
Penjelasan Solusi 2 (Revert atau Cherry-Pick):
- Menggunakan
git revert
: Kalau commit yang salah itu udah terlanjur kamupush
atau kamu nggak mau ngerusak histori branch tersebut (misal branchmain
yang krusial), cara amannya adalah membatalkan commit itu dengangit revert
.
1. Di branch tempat commit yang salah berada (misal main
), cari ID commit yang salah pake git log
. 2. Jalankan git revert
. Git akan membuat commit baru yang isinya membatalkan semua perubahan dari commit yang salah itu. Commit baru ini akan muncul di histori branch main
. Jadi, histori commit yang salah tetap ada, tapi efeknya dibatalkan oleh commit baru. 3. Sekarang, perubahannya udah "dibatalkan" di branch yang salah. Kamu bisa "ambil" perubahan tersebut dan terapkan di branch yang benar. Salah satu cara adalah git checkout
, lalu git cherry-pick
. cherry-pick
itu ibaratnya "memetik" satu commit dari satu branch dan menerapkannya sebagai commit baru di branch kamu saat ini. 4. git push
kedua branch (branch asal yang direvert dan branch target yang dicherry-pick) ke remote.
Cara revert
+ cherry-pick
ini lebih aman kalau histori udah terlanjur di-push
dan dishare, karena nggak nulis ulang histori.
Menggunakan git cherry-pick
saja: Kalau kamu cuma mau memindahkan commit dari satu branch ke branch lain dan commit asal itu tidak* penting lagi di branch lamanya (dan commitnya belum dipush), kamu bisa langsung: 1. Cari ID commit yang salah di branch asal (misal main
). 2. git checkout
. 3. git cherry-pick
. Ini akan membuat commit baru dengan perubahan yang sama di branch ini. 4. Kembali ke branch asal (misal main
). 5. Jalankan git reset HEAD~1
(atau --hard
kalau yakin nggak butuh perubahan itu sama sekali di sini) untuk menghapus commit yang salah dari branch asal.
Cara ini juga efektif tapi perlu hati-hati dengan reset
di branch asal, terutama kalau udah dipush.
Skenario 3: Perubahan Lokal (Belum di-Commit) Malah Rusak atau Mau Dibuang Aja.
Kamu udah ngoding banyak, udah modifikasi file sana-sini, tapi belum di git add
atau git commit
. Tiba-tiba kamu sadar kodenya salah semua, atau malah pengen ngembaliin file-file itu ke kondisi terakhir kali kamu commit atau stash.
Masalah: Perubahan lokal di working directory (file yang belum di-add/stage) atau di staging area* (file yang sudah di-add tapi belum di-commit) mau dibatalkan/dibuang.
- Solusi:
Buang perubahan di file tertentu* (yang belum di-add): git checkout --
atau git restore
(lebih modern). * Buang semua perubahan di semua file (yang belum di-add): git checkout -- .
atau git restore .
. Batalkan git add
(kembalikan dari staging area ke working directory*): git reset HEAD
atau git restore --staged
. * Batalkan git add
semua file: git reset HEAD .
atau git restore --staged .
. Buang semua* perubahan (baik yang sudah di-add maupun belum), kembali ke kondisi commit terakhir: git reset --hard HEAD
. (HATI-HATI, ini menghapus semua perubahan lokal!).
Penjelasan:
git checkout --
: Ini mengambil versi file dari commit terakhir (HEAD
) dan menimpa file di working directory kamu. Perubahan lokal kamu di file itu hilang.git restore
: Ini perintah yang lebih baru (tersedia sejak Git 2.23) dan tujuannya lebih jelas.git restore
mengembalikan file di working directory ke kondisi terakhir di staging area atau commit terakhir.
git restore --staged
: Mengambil file dari commit terakhir (HEAD
) dan menimpa file di staging area. Efeknya, file itu "di-unstage" tapi perubahannya tetap ada* di working directory. Mirip dengan git reset HEAD
.
git reset --hard HEAD
: Ini perintah paling "keras". Dia akan:
1. Mengubah HEAD
pointer ke commit terakhir (dalam kasus ini, ke commit yang sama, jadi nggak ada perubahan histori). 2. Mengubah staging area agar persis sama dengan commit terakhir. 3. Mengubah working directory agar persis sama dengan commit terakhir. Ini artinya, semua perubahan lokal kamu yang belum di-commit akan hilang permanen. Gunakan dengan sangat hati-hati dan pastikan kamu beneran mau membuang semuanya.
Menghapus File yang Belum Di-track (Untracked Files):
Perintah di atas hanya berlaku untuk file yang sudah di-track oleh Git (sudah pernah di-add atau di-commit sebelumnya). Kalau ada file baru yang belum pernah di-add sama sekali, Git menganggapnya untracked. Untuk menghapusnya:
- Lihat file untracked:
git clean -n
(opsi-n
hanya menampilkan apa yang akan dihapus, tanpa benar-benar menghapus). - Hapus file untracked:
git clean -f
(opsi-f
= force). - Hapus file untracked DAN direktori untracked:
git clean -fd
. - Hapus file untracked, direktori untracked, DAN file yang diabaikan (sesuai
.gitignore
):git clean -fdx
. (Sangat Hati-hati!)
Skenario 4: Nggak Sengaja Hapus Branch Penting!
Aduh, niatnya mau nge-merge atau cuma mau cek, malah kepencet git branch -d nama-branch-penting
atau git branch -D nama-branch-penting
! Panik!
- Masalah: Branch yang penting nggak sengaja terhapus.
- Solusi: Gunakan
git reflog
untuk menemukan commit terakhir dari branch tersebut.
Penjelasan:
Meskipun branch-nya udah dihapus, Git itu baik hati. Dia nggak langsung menghapus commit-commit yang tadinya ada di branch itu, setidaknya untuk sementara. Commit-commit itu masih "mengambang" di dalam repository kamu, dan reflog
ingat kapan terakhir kali kamu ada di branch itu atau kapan HEAD
pernah menunjuk ke commit terakhir di branch itu.
- Jalankan
git reflog
. - Cari di output
reflog
baris yang kira-kira nunjukin kamu lagi di branch yang kehapus itu atau merge dari branch itu. Biasanya kelihatan dari pesan di barisreflog
atau dari ID commit-nya kalau kamu ingat ID-nya. Contoh:a1b2c3d HEAD@{5}: checkout: moving from nama-branch-penting to main
ataue4f5g6h HEAD@{8}: merge nama-branch-penting: Merge branch 'nama-branch-penting'...
. ID commit yang kamu cari adalah ID commit terakhir di branch itu sebelum branch-nya dihapus. Misalnya, ID commit-nya adalaha1b2c3d
. - Setelah ketemu ID commit terakhir branch tersebut, kamu bisa buat branch baru yang nunjuk ke commit itu:
git branch nama-branch-yang-kehapus a1b2c3d
. - Sekarang branch-nya udah muncul lagi dan isinya persis sama seperti sebelum dihapus.
Skenario 5: Pengen Balik ke Kondisi Beberapa Commit Sebelumnya, Mau Mengabaikan Semua Commit Setelah Itu.
Kamu lagi di branch fitur-baru
, udah bikin 5 commit. Tapi setelah direview, ternyata approach di 5 commit terakhir itu salah total. Kamu pengen balikin branch fitur-baru
ke kondisi commit sebelum 5 commit itu dibuat.
- Masalah: Mau menghapus/mengabaikan beberapa commit terakhir di branch lokal.
- Solusi:
git reset --hard
.
Penjelasan:
Perintah git reset --hard
sangat ampuh tapi juga paling berbahaya karena sifatnya destruktif di lokal.
- Cari ID commit tempat kamu ingin kembali. Kamu bisa pake
git log
ataugit log --oneline
untuk melihat histori commit dan ID singkatnya. Misalnya, ID commit yang mau kamu jadikan patokan adalahf9e8d7c
. - Pastikan kamu sangat yakin bahwa semua perubahan di commit-commit setelah
f9e8d7c
(dan juga perubahan lokal yang belum di-commit) itu memang ingin kamu buang permanen. - Jalankan:
git reset --hard f9e8d7c
.
Git akan:
- Mengubah
HEAD
pointer dan branchfitur-baru
untuk menunjuk ke commitf9e8d7c
.
Menghapus semua commit setelah* f9e8d7c
dari histori branch fitur-baru
(secara lokal). Mengubah staging area dan working directory* kamu agar persis sama dengan kondisi pada commit f9e8d7c
.
Semua perubahan yang ada di 5 commit terakhir dan perubahan lokal kamu yang belum di-commit akan hilang. Tapi tenang, bahkan setelah git reset --hard
, kamu masih bisa menggunakan git reflog
untuk menemukan ID commit terakhir sebelum kamu reset, dan balikin lagi kalau ternyata salah reset! (Lihat Skenario 8).
Alternatif yang Lebih Aman untuk History (Kalau Commit Sudah Dipush):
Kalau 5 commit terakhir itu udah terlanjur kamu push
ke remote dan mungkin udah diambil sama developer lain, git reset --hard
itu bahaya banget karena nulis ulang histori dan bikin kacau pas mau push
lagi atau pas temen kamu pull
. Solusi amannya adalah pake git revert
secara berulang untuk setiap commit yang mau dibatalkan.
- Identifikasi ID commit yang ingin dibatalkan, urut dari yang paling baru ke yang paling lama di antara 5 commit tersebut.
- Untuk setiap commit, jalankan
git revert
. Ini akan membuat commit baru yang membatalkan perubahan dari commit tersebut. Kamu akan punya 5 commit baru yang isinya membatalkan 5 commit yang salah. git push
commit-commitrevert
ini. Histori commit yang salah tetap ada, tapi efeknya dibatalkan, dan histori remote kamu nggak rusak.
Skenario 6: Mau Membatalkan Perubahan dari Satu Commit Tertentu di Tengah Histori.
Misal, ada commit fix-bug-lama
dengan ID abcdef1
di tengah-tengah histori branch kamu. Ternyata fix itu malah nimbulin bug baru, dan kamu pengen membatalkan hanya perubahan dari commit abcdef1
itu, tanpa mengganggu commit-commit lain yang ada setelahnya.
- Masalah: Membatalkan efek dari satu commit spesifik di histori.
- Solusi:
git revert
.
Penjelasan:
Seperti yang dijelaskan di Skenario 5, git revert
membuat commit baru yang isinya kebalikan dari perubahan di commit yang mau dibatalkan. Ini cara paling aman karena tidak mengubah histori yang sudah ada.
- Cari ID commit yang ingin kamu batalkan efeknya (misal
abcdef1
). - Jalankan
git revert abcdef1
. Git akan membuat commit baru yang isinya undo perubahan dariabcdef1
. Kamu mungkin akan diminta mengisi commit message untuk commitrevert
ini. - Commit baru ini akan ditambahkan ke histori branch kamu saat ini. Perubahan dari commit
abcdef1
sudah dibatalkan, sementara commit-commit lain setelahnya tetap utuh.
Skenario 7: Salah Menggunakan Staging Area / Index.
Kamu udah git add
beberapa file, tapi ternyata ada file yang belum siap di-commit atau malah salah masuk. Kamu mau "mengeluarkan" file itu dari staging area tapi perubahannya nggak hilang.
- Masalah: Ada file yang udah di-add (di-stage) tapi mau di-unstage.
- Solusi:
git reset HEAD
ataugit restore --staged
. Untuk semua file:git reset HEAD .
ataugit restore --staged .
.
Penjelasan:
git reset HEAD
: Perintah ini menggeser pointer HEAD ke commit terakhir (yaitu HEAD) tapi khusus untuk file . Efeknya, file itu dikeluarkan dari staging area dan statusnya kembali jadi modified* di working directory (unstaged). Perubahannya nggak hilang.
git restore --staged
: Perintah yang lebih modern dan jelas maknanya, melakukan hal yang sama persis dengangit reset HEAD
.
Skenario 8: Panik Total! Nggak Tahu Udah Ngapain Aja, Project Kayaknya Rusak, Pengen Balik ke Kondisi Beberapa Menit atau Jam yang Lalu.
Ini skenario paling parah, mungkin kamu udah coba reset
, checkout
, merge
konflik, terus semuanya jadi berantakan dan kamu nggak yakin di mana posisi aman terakhir.
- Masalah: Project berantakan, nggak tahu harus ngapain, pengen balik ke titik waktu yang "aman".
- Solusi:
git reflog
adalah kunci penyelamat!
Penjelasan:
Inilah momen git reflog
bersinar terang. Ingat, reflog
nyimpen setiap pergerakan HEAD
.
- Jalankan
git reflog
. - Lihat output-nya dari atas (paling baru) ke bawah (paling lama). Setiap baris nunjukin apa yang kamu lakuin (
commit
,checkout
,merge
,reset
, dll.) dan ID commit pada saat itu. - Identifikasi titik di
reflog
yang kira-kira merupakan kondisi "aman" terakhir kamu. Misalnya, kamu ingat 30 menit lalu project kamu baik-baik aja, cari baris direflog
sekitar 30 menit yang lalu atau sebelum kamu mulai ngaco, dan perhatikan ID commit-nya. Atau, cari pesan direflog
yang nunjukin commit sebelum kamu mulai ngaco. Misalnya, kamu nemu barisf9e8d7c HEAD@{10}: commit: Add user profile page
dan kamu ingat setelah commit itu kamu mulai ngaco. ID commit aman kamu adalahf9e8d7c
. - Setelah dapat ID commit yang aman, kamu bisa melakukan beberapa hal:
Kembali ke kondisi itu (sementara): git checkout f9e8d7c
. Ini akan membawa kamu ke kondisi commit tersebut. Kamu akan berada di detached HEAD* state, artinya kamu nggak ada di branch manapun. Ini bagus buat cek-cek aja. Kalau mau ngelanjutin kerja dari sini, bikin branch baru: git branch nama-branch-baru
. * Mengembalikan branch saat ini ke kondisi itu (menghapus histori setelahnya secara lokal): Kalau kamu pengen branch kamu (misal main
) kembali ke commit itu dan mengabaikan semua yang terjadi setelahnya (sama kayak Skenario 5), gunakan git reset --hard f9e8d7c
. Ingat, ini menghapus perubahan lokal dan histori setelahnya secara lokal. * Membuat branch baru dari kondisi itu: git branch nama-branch-baru f9e8d7c
. Ini cara paling aman. Branch kamu yang sekarang (misal main
) tetep di posisinya yang berantakan, tapi kamu punya branch baru (nama-branch-baru
) yang isinya persis kayak kondisi di commit f9e8d7c
. Kamu bisa git checkout nama-branch-baru
dan mulai kerja lagi dari sini, atau bandingkan dengan branch yang berantakan tadi buat nyari tahu di mana salahnya.
git reflog
itu penyelamat utama kamu kalau udah panik dan nggak tahu mau ke mana. Dia selalu punya catatan jejak digital kamu di Git.
Tips Tambahan Biar Nggak Sering Ngaco (Tapi Kalaupun Ngaco, Nggak Panik):
- Commit Sering-sering: Jangan tunggu perubahan numpuk banyak baru commit. Setiap kali kamu selesai satu task kecil atau satu bagian dari fitur, langsung commit. Commit kecil-kecil lebih gampang dibalikin kalau ada masalah.
- Selalu Cek
git status
: Sebelumadd
ataucommit
, biasakan jalaningit status
. Ini nunjukin file mana yang udah diubah, mana yang udah di-add, mana yang untracked. Jadi kamu tau persis apa yang sedang terjadi. - Gunakan
git diff
: Sebelumadd
, cek perubahan di file yang udah dimodifikasi dengangit diff
. Sebelumcommit
, cek perubahan yang udah di-stage dengangit diff --staged
. Ini penting biar kamu nggak salah commit atau masukin perubahan yang belum siap. - Pahami Konsep Branching: Kerja di branch yang terpisah buat setiap fitur atau perbaikan bug itu penting. Itu menjaga branch utama (misal
main
ataudevelop
) tetap bersih dan stabil. Kalaupun kamu ngaco di branch fitur, dampaknya nggak langsung kena ke branch utama. - Review Commit Sebelum Push: Pakai
git log
ataugit log -p
untuk lihat commit terakhir atau seluruh histori beserta perubahannya sebelum kamugit push
. Pastikan semua commit udah sesuai. - Hati-hati dengan
force push
(-f
atau--force-with-lease
): Memang kadang butuhforce push
buat nulis ulang histori di remote (misal setelahreset --hard
ataurebase
), tapi ini bahaya kalau repository-nya dipakai bareng. Selalu koordinasi sama tim kalau mauforce push
. Pakai--force-with-lease
lebih aman karena dia ngecek apakah branch remote udah ada commit baru yang belum kamu punya sebelum force push.
Kesimpulan
Git itu kuat banget, dan dia dirancang buat bisa balikin keadaan dari hampir semua "kesalahan". Panik pas awal ngaco itu manusiawi, tapi dengan memahami tools dasar kayak git status
, git add
, git commit
, git checkout
, git reset
, git revert
, git stash
, dan yang paling penting git reflog
, kamu bakal jauh lebih pede dalam ngelola project.
Anggap aja tiap kali kamu ngaco itu kesempatan buat belajar satu skenario recovery baru di Git. Makin sering kamu nyoba balikin keadaan (di project personal dulu biar aman), makin jago kamu nanti pas ngadepin masalah beneran di project tim. Jadi, jangan takut ngaco! Itu bagian dari proses belajar. Yang penting tau cara balikinnya.
Semoga artikel ini ngebantu kamu buat nggak panik lagi pas lagi ngaco di Git ya! Selamat mencoba dan jangan ragu eksplorasi lebih lanjut. Git punya banyak banget perintah canggih lainnya.