Setiap commit yang kita buat menyimpan nama dan email penulisnya sebagai bagian permanen dari riwayat — informasi yang ikut terbawa ke mana pun repository disalin, dilihat lewat git log, atau ditampilkan di layanan hosting. Git tidak menebak-nebak identitas ini: tanpa pengaturan, Git menghentikan commit pertama kita dengan pesan galat. Pengaturannya hanya dua perintah yang dijalankan sekali, dan chapter ini membahas mengapa identitas diperlukan, cara mengaturnya, cara memeriksanya, serta seperti apa galat yang muncul bila langkah ini dilewati.
Mengapa Git Memerlukan Identitas #
Sebuah commit bukan sekadar potongan perubahan berkas, melainkan snapshot lengkap yang dibungkus metadata: penulis, waktu, pesan, dan tautan ke commit sebelumnya. Nama dan email penulis masuk ke metadata tersebut dan tidak bisa lagi diubah begitu commit dibagikan — itulah mengapa identitas perlu ditentukan sebelum commit pertama, bukan setelahnya.
Identitas juga berfungsi di luar mesin kita. Layanan seperti GitHub mencocokkan email commit dengan akun pengguna untuk mengaitkan kontribusi pada profil yang tepat, dan alat seperti git blame menampilkan nama penulis tiap baris ketika tim menelusuri asal sebuah perubahan.
Mengatur Identitas Global #
Dua perintah berikut mengatur identitas untuk seluruh repository di komputer kita:
git config --global user.name "Budi Santoso"
git config --global user.email "[email protected]"Mari kita bedah kedua perintah tersebut:
git configadalah perintah pengaturan Git; topiknya lengkap dibahas pada chapter git config .--globalmenempatkan nilai pada berkas~/.gitconfigmilik akun kita, sehingga berlaku untuk semua repository di komputer — cukup dijalankan sekali setelah pemasangan.user.namemenerima nama apa pun tanpa validasi, tetapi nama asli yang mudah dikenali rekan tim adalah pilihan terbaik.user.emailmenerima alamat email; email inilah yang dipakai layanan hosting untuk mengaitkan commit dengan akun.
Nama dan email pada contoh di atas adalah data fiktif untuk latihan — jalankan kedua perintah dengan identitas kita sendiri. Kedua perintah yang berhasil tidak mencetak keluaran apa pun; keheningan di terminal adalah tanda nilainya tersimpan. Dua baris perintah tadi menulis berkas ~/.gitconfig dengan isi sebagai berikut:
[user]
name = Budi Santoso
email = [email protected]Berkas inilah yang dibaca Git setiap kali sebuah commit dibuat. Struktur berkasnya dan hubungannya dengan berkas konfigurasi lain dibahas di chapter Memahami File Konfigurasi .
Memeriksa Hasil Konfigurasi #
Verifikasi paling menyeluruh adalah mendaftar seluruh pengaturan global yang tersimpan:
git config --global --listOutput yang Dihasilkan:
user.name=Budi Santoso
[email protected]Setiap baris keluaran memuat pasangan kunci=nilai — format yang sama untuk seluruh pengaturan Git. Cara kedua, lebih ringkas, adalah membaca satu kunci saja:
git config user.nameOutput yang Dihasilkan:
Budi SantosoPerintah ini hanya menampilkan nilai yang diminta, sehingga cocok dipakai untuk memastikan satu pengaturan tertentu tanpa menggulir daftar panjang.
Bila Identitas Belum Diatur #
Untuk melihat seperti apa akibat melewatkan langkah ini, kita siapkan repository kecil lalu mencoba commit — pembuatan repository dibahas tuntas di chapter git init , jadi di sini kita cukup menjalankan urutannya:
git init -b main
echo "catatan belajar git" > catatan.txt
git add catatan.txt
git commit -m "Commit pertama"Output yang Dihasilkan:
Initialized empty Git repository in /home/z/my-project/tutorial-extracted/work/sandbox/instalasi-dan-konfigurasi/demo-ch7/.git/
Author identity unknown
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'z@c-6acdae07-145cf406-01cb462c14cf.(none)')Jalur direktori dan nama host pada keluaran di atas menyesuaikan lokasi folder serta nama komputer tempat perintah dijalankan. Tiga baris pertama berasal dari git init yang sukses membuat repository; kegagalan justru terjadi pada git commit di akhir urutan. Git mencoba menebak identitas dari nama pengguna dan nama komputer — pola z@c-... pada baris terakhir — lalu menolaknya karena tebakan semacam itu tidak berupa email yang valid.
Pesan galatnya sekaligus menyebut obatnya: dua perintah git config --global yang sama dengan yang kita jalankan pada bagian sebelumnya. Setelah identitas terisi, commit yang sama berjalan mulus tanpa mengulang langkah mana pun.
Cakupan Global dan Per Repository #
Opsi --global membuat identitas berlaku untuk semua repository milik akun kita, dan itulah pola yang tepat untuk komputer pribadi. Namun Git juga menyediakan cakupan per repository: jalankan perintah yang sama tanpa --global dari dalam sebuah repository, dan nilainya hanya berlaku di situ. Pola ini berguna bila satu komputer memisahkan identitas kerja dan identitas pribadi — repository kantor memakai email kantor, repository lain mengikuti pengaturan global.
Identitas yang siap berarti seluruh commit ke depan tercatat atas nama yang benar. Pengaturan identitas barusan dua dari banyak kunci yang dikenal Git; chapter berikutnya, git config , membahas perintah pengaturan ini secara penuh — cara melihat, mengubah, hingga menghapus nilai dengan cakupan yang tepat.