git status adalah layar utama pekerjaan Git sehari-hari, yaitu perintah yang menjawab tiga pertanyaan dasar pada saat yang sama: di branch apa posisi sekarang, perubahan apa yang menunggu di staging area, dan perubahan apa yang belum tersentuh di working directory. Topik ini membahas cara membaca setiap seksi keluarannya, format singkatnya, dan kebiasaan memanggilnya secara rutin sebelum setiap keputusan.
Keadaan repository kosong#
Jalankan git status pada repository yang baru dibuat dan belum memiliki commit.
rm -rf /tmp/lab-status
mkdir /tmp/lab-status
cd /tmp/lab-status
git init -b main
git statusInitialized empty Git repository in /tmp/lab-status/.git/
On branch main
No commits yet
nothing to commit (create/copy files and use "git add" to track)Baris pertama menyatakan branch aktif, yaitu main. Seksi No commits yet menandakan riwayat masih kosong, dan baris terakhir menyatakan tidak ada perubahan yang dapat di-commit. Bagian dalam tanda kurung adalah saran tindakan yang dipilih Git sesuai keadaan, dan sarannya selalu dapat diikuti dengan aman.
Untracked, staged, dan modified#
Buat dua berkas baru, lalu amati statusnya.
printf "Sambungan pertama.\n" > sapa.txt
printf "# Catatan\n" > catatan.md
git statusOn branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
catatan.md
sapa.txt
nothing added to commit but untracked files present (use "git add" to track)Seksi Untracked files berisi berkas yang ada di working directory tetapi belum pernah dicatat Git. Berkas dalam keadaan ini tidak akan pernah masuk commit meskipun perintah git commit dipanggil, karena commit hanya mengambil isi staging area. Stage salah satu berkas, lalu perbarui berkas yang satunya.
git add sapa.txt
printf "Sambungan diperbarui.\n" > sapa.txt
git statusOn branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: sapa.txt
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: sapa.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
catatan.mdTiga seksi muncul sekaligus, dan inilah keadaan yang paling sering ditemui pada pekerjaan nyata. sapa.txt muncul dua kali dengan dua arti berbeda: versi yang di-add menunggu di staging area, sedangkan penyuntingan setelahnya hanya ada di working directory. git commit akan menyimpan versi yang di-add, dan git add perlu dipanggil lagi apabila versi terakhir juga ingin ikut.
Format singkat dengan git status -s#
Format panjang memuat banyak teks bantu, sedangkan opsi -s menampilkan status singkat satu baris per berkas yang ringkas untuk dibaca cepat.
git status -sAM sapa.txt
?? catatan.mdDua kolom kode muncul di kiri setiap baris, yaitu kolom staging dan kolom working directory. Huruf pada kolom pertama menyatakan keadaan staging area, sedangkan kolom kedua menyatakan keadaan working directory. Tabel berikut memuat kode yang paling sering muncul.
| Kode | Arti | Lokasi perubahan |
|---|---|---|
?? | untracked | berkas baru yang belum pernah dicatat |
A | added | berkas baru yang menunggu di staging area |
M | modified, staged | perubahan yang menunggu di staging area |
M | modified, belum staged | perubahan yang hanya ada di working directory |
D | deleted, staged | penghapusan berkas yang menunggu di staging area |
Perhatikan posisi huruf dan spasi: M berarti sudah di-add, sedangkan M berarti belum. Baris A sapa.txt dan M sapa.txt pada keluaran di atas persis menggambarkan dua keadaan berkas yang sama, sehingga format ini disukai untuk pemeriksaan cepat sebelum staging.
Kebiasaan memanggil status#
Karena git status tidak mengubah apa pun, perintah ini aman dipanggil kapan saja dan tidak menimbulkan risiko. Kebiasaan yang menjaga akurasi keputusan adalah memanggilnya sebelum git add, sesudah git add sebelum git commit, dan sesudah operasi yang berisiko seperti merge atau reset. Pesan working tree clean pada akhirnya juga menjadi tanda yang dapat dicari untuk memastikan tidak ada pekerjaan yang tertinggal sebelum berpindah tugas.
Ringkasan#
git statusmelaporkan branch aktif, isi staging area, dan perubahan working directory dalam satu keluaran.- Berkas untracked tidak pernah masuk commit sebelum di-
add, dan berkas yang diedit setelah di-addperlu di-addulang. - Opsi
-smenampilkan status dua kolom per berkas: kolom kiri untuk staging area dan kolom kanan untuk working directory. git statushanya membaca keadaan, sehingga aman dipanggil sebelum setiap keputusan.
Referensi#
- git-status — Git Documentation
— rujukan format panjang dan format singkat
git status. - Recording Changes to the Repository — Pro Git — bagian Checking the Status dari Pro Git.