Kursus
Apakah commit Anda tampil dengan nama yang salah di riwayat Git?
Anda membuat commit, mendorongnya ke repo tim, lalu rekan kerja tiba-tiba bertanya siapa itu "unknown". Atau lebih buruk lagi, email pribadi Anda muncul di proyek kantor. Ini kesalahan pemula, tetapi kita semua pernah mengalaminya. Git menyimpan nama dan email pada setiap commit agar tim dapat melacak siapa mengubah apa, dan ketika Anda tidak menyiapkannya dengan benar, commit Anda terlihat seperti berasal dari orang lain.
Solusinya sederhana: Git menggunakan user.name dan user.email dari pengaturan konfigurasi Anda. Saat orang berkata "git config username," yang dimaksud adalah user.name. Dan tidak, itu bukan sama dengan username GitHub Anda.
Dalam artikel ini, saya akan memandu Anda mengatur Git username secara global atau lokal, memeriksa konfigurasi saat ini, menggunakan nama berbeda untuk proyek berbeda, dan memperbaiki masalah umum terkait username.
Jawaban Singkat: Cara Mengatur Git Username Anda
Berikut dua perintah yang Anda perlukan:
# Set Git username globally (all repos)
git config --global user.name "Your Name"
# Set Git username for the current repo only
git config user.name "Your Name"
Konfigurasi global berlaku untuk setiap repository di mesin Anda kecuali ada repo tertentu yang menimpanya.
Perintah git config biasa (tanpa --global) hanya memengaruhi repository tempat Anda berada saat ini.
Jalankan perintah ini untuk memeriksa apa yang akan digunakan Git untuk commit berikutnya:
git config user.name
Ini menampilkan username aktif untuk lokasi Anda saat ini — baik pengaturan lokal repo atau fallback global jika tidak ada pengaturan lokal.
git config user.name
Ini menampilkan username aktif untuk lokasi Anda saat ini — baik pengaturan lokal repo atau fallback global jika tidak ada pengaturan lokal.

Tentang Git Username dan Identitas
Git menyertakan dua informasi pada setiap commit yang Anda buat: nama penulis dan email penulis.
Keduanya berasal langsung dari user.name dan user.email di konfigurasi Git Anda. Saat Anda menjalankan git commit, Git mengambil nilai apa pun yang disetel dan menempelkannya secara permanen ke metadata commit tersebut. Rekan tim Anda melihat informasi ini di git log, tampilan blame, dan pull request.
Git tidak memvalidasi apa pun dari ini.
Anda bisa menyetel nama menjadi "Batman," "Linus Torvalds," atau hanya nama depan dengan inisial belakang. Pengembang yang berfokus pada privasi sering menggunakan nama samaran atau handle alih-alih nama lengkap resmi mereka, terutama untuk karya open-source publik. Git sama sekali tidak peduli. Ia hanya merekam apa yang Anda beritahukan.
Satu hal yang perlu diingat adalah Git username Anda tidak sama dengan username GitHub Anda.
Git username Anda (user.name) adalah apa pun yang Anda konfigurasikan secara lokal. Username GitHub Anda adalah handle akun Anda, atau yang muncul di URL seperti github.com/your-handle. Keduanya adalah sistem yang sepenuhnya terpisah dan tidak harus sama.
Platform hosting seperti GitHub dan GitLab menggunakan alamat email Anda untuk menautkan commit ke akun Anda. Nama hanya untuk tampilan. Jika email commit Anda cocok dengan email di akun GitHub Anda, GitHub akan menampilkan foto profil Anda dan menautkan ke akun Anda. Nama yang Anda atur di user.name muncul sebagai teks, tetapi email yang benar-benar menautkan commit kepada Anda.
Mengubah user.name hanya memengaruhi commit yang Anda buat ke depannya. Commit lama yang sudah Anda push akan tetap menggunakan nama penulis aslinya.
Cara kerja git config untuk user.name
Git menyimpan pengaturan konfigurasi di tiga tempat berbeda. Saya akan menunjukkan apa saja itu, agar Anda tidak berakhir dengan nama yang tidak terduga.
-
Konfigurasi tingkat sistem (
--system) berlaku untuk setiap pengguna di mesin. Ini jarang digunakan dalam praktik dan sebagian besar developer tidak pernah menyentuhnya. -
Konfigurasi global (
--global) berlaku untuk akun pengguna OS Anda dan mencakup semua repository Anda. -
Konfigurasi lokal (
--local) berada di dalam file.git/configmilik satu repository dan hanya memengaruhi repo tersebut.
Git menggunakan aturan prioritas untuk menentukan nilai mana yang menang.
Pengaturan lokal menimpa pengaturan global, yang menimpa pengaturan sistem. Jika Anda menyetel user.name di ketiga level, Git akan menggunakan nilai lokal saat Anda berada di dalam repo tersebut dan mengabaikan yang lain.
Misalkan Anda memiliki:
-
Sistem:
user.name = "System User" -
Global:
user.name = "Global User" -
Lokal (di dalam repo tertentu):
user.name = "Local User"
Saat Anda commit di dalam repo tersebut, Git menggunakan "Local User" karena lokal adalah yang paling spesifik di sini. Di luar repo itu, Git kembali ke "Global User" dari konfigurasi global Anda.
Anda dapat melihat semua nilai konfigurasi dan asalnya:
git config --list
git config --list --show-origin

Flag --show-origin mencetak path file di samping setiap pengaturan. Ini cara Anda melakukan debug "mengapa Git menggunakan nama ini?" — Anda akan melihat persis file konfigurasi mana yang menyetel nilainya.
File konfigurasi ini berada di lokasi yang dapat diprediksi: ~/.gitconfig untuk pengaturan global dan .git/config di dalam setiap repository untuk pengaturan lokal. Konfigurasi sistem biasanya berada di /etc/gitconfig pada Linux dan macOS.
Saat Anda menjalankan git config --global user.name "Your Name", Git menulis ke ~/.gitconfig dan nilai itu menjadi default untuk setiap repo kecuali Anda menimpanya secara lokal.
Cara Memeriksa Git username Anda Saat Ini
Anda perlu tahu nama apa yang akan dicantumkan Git pada commit berikutnya. Berikut beberapa perintah yang bisa dijalankan.
Perintah cepat untuk melihat user.name
Berikut perintah untuk menampilkan Git username Anda:
# Show the active user.name for the current repo (or global if outside a repo)
git config user.name
# Show specifically the global username
git config --global user.name
# Show everything and scan for user.name and user.email
git config --list

Perintah pertama — git config user.name — adalah yang paling sering Anda butuhkan. Ini menampilkan nilai yang benar-benar akan digunakan Git di repo tersebut. Jika Anda berada di dalam repo dengan override lokal, Anda akan melihat nilai lokal. Jika tidak, Anda akan melihat fallback global.
Jika Anda ingin memfilter daftar konfigurasi penuh, cukup pipe melalui grep:
git config --list | grep user.name
git config --list | grep user.name

Ini berfungsi di Linux dan macOS. Di Windows, gunakan findstr alih-alih grep.
Memahami apa yang Anda lihat
Jika git config user.name mencetak nilai di dalam repo, itulah yang akan digunakan Git saat Anda commit di sana.
Namun git config --global user.name mungkin menampilkan sesuatu yang berbeda. Git mengabaikan nilai global jika ada pengaturan lokal. Di sinilah orang sering bingung. Mereka mengubah konfigurasi global dan bertanya-tanya mengapa commit tetap menampilkan nama lama.
Gunakan git config --list --show-origin untuk debug ini:
git config --list --show-origin
git config --list --show-origin

Ini mencetak path file asal setiap pengaturan — gitconfig untuk lokal, ~/.gitconfig untuk global, atau /etc/gitconfig untuk sistem. Pindai user.name dan Anda akan melihat persis file konfigurasi mana yang menang.
Langkah demi Langkah: Menyetel Git username Anda
Kebanyakan developer menyetel Git username sekali lalu melupakannya. Namun, Anda juga bisa menyesuaikannya per proyek jika diperlukan.
Menyetel Git username secara global
Ini adalah penyiapan satu kali yang Anda lakukan pada mesin baru.
- Buka Terminal (macOS/Linux) atau Git Bash (Windows)
- Jalankan perintah konfigurasi dengan nama Anda:
git config --global user.name "Your Name"
3. Verifikasi bahwa berhasil:
git config --global user.name
Git sekarang akan menggunakan nama ini untuk setiap commit di setiap repository di mesin Anda kecuali Anda menimpanya secara lokal.
Anda juga sebaiknya menyetel email sekaligus di sini:
git config --global user.email "your.email@example.com"
Kedua nilai perlu disetel agar commit berfungsi dengan baik dan tertaut dengan akun GitHub atau GitLab Anda.
git config --global user.email "your.email@example.com"
Jika Anda memerlukan nama berbeda untuk proyek berbeda, misalnya nama asli untuk repo kerja dan nama samaran untuk open-source.
Berikut cara menimpa pengaturan global untuk satu repo:
1. Masuk ke direktori repository:
cd /path/to/your/repo
2. Setel username lokal:
git config user.name "Project-Specific Name"
3. Verifikasi Git akan menggunakannya:
git config user.name
Nilai ini berada di .git/config di dalam repository tersebut dan menimpa user.name global Anda hanya untuk repo itu. Repo lain di mesin Anda tetap tidak terpengaruh.
Tip lanjutan: Username berbeda untuk folder berbeda dengan includeIf
Jika Anda mengerjakan beberapa proyek dengan identitas berbeda, misalnya semua repo di bawah ~/work/ menggunakan nama kerja Anda dan semua yang di bawah ~/personal/ menggunakan nama samaran, Anda dapat mengotomatisasikannya dengan includeIf.
Tambahkan ini ke ~/.gitconfig Anda:
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
[includeIf "gitdir:~/personal/"]
path = ~/.gitconfig-personal
Lalu buat file konfigurasi terpisah seperti ~/.gitconfig-work:
[user]
name = "Work Name"
email = "work@company.com"
Dan ~/.gitconfig-personal:
[user]
name = "Personal Handle"
email = "personal@email.com"
Git secara otomatis memilih identitas yang tepat berdasarkan lokasi repo. Tidak perlu beralih manual.
Skenario Umum dan Praktik Terbaik
Berikut cara menangani situasi Git username paling umum tanpa membuat kekacauan.
Memisahkan identitas kerja dan pribadi
Setel nama pribadi Anda secara global, lalu timpa untuk proyek kerja. Dengan cara ini repo pribadi Anda default ke identitas pilihan Anda, dan repo kerja menggunakan nama profesional Anda.
Pendekatan paling rapi adalah menggunakan includeIf untuk beralih identitas secara otomatis berdasarkan folder:
# In ~/.gitconfig
[user]
name = "Personal Name"
email = "personal@email.com"
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
Lalu buat ~/.gitconfig-work dengan identitas kerja Anda. Setiap repo di bawah ~/work/ akan otomatis mendapatkan nama kerja. Saya sudah menjelaskannya di bagian sebelumnya.
Anda juga dapat menyetel konfigurasi lokal per repo jika Anda hanya memiliki beberapa proyek kerja, tetapi includeIf lebih skalabel saat Anda mengelola banyak identitas di banyak repo.
Menggunakan nama samaran atau handle
Git tidak peduli apakah Anda menggunakan nama resmi.
Anda dapat menyetel user.name menjadi handle, nama depan dengan inisial belakang, atau apa pun yang sesuai preferensi privasi Anda. Ini umum dalam pekerjaan open-source di mana kontributor menginginkan anonimitas. Cukup pilih sesuatu yang membantu tim Anda mengidentifikasi commit Anda.
Identitas tim atau bot
Commit otomatis sebaiknya menggunakan nama deskriptif seperti "CI Bot" atau "Deploy Script" agar menonjol di riwayat.
git config user.name "CI Bot"
git config user.email "ci@company.com"
Dengan pendekatan ini, jelas commit mana yang berasal dari otomatisasi versus developer saat Anda memindai git log atau meninjau anotasi blame.
Ingat untuk menyelaraskan nama dan email di platform hosting
GitHub dan GitLab mencocokkan commit ke akun Anda menggunakan alamat email, bukan nama. Jika email commit Anda cocok dengan email di akun GitHub Anda, GitHub menautkan commit ke profil Anda dan menampilkan avatar Anda.
Nilai user.name muncul sebagai teks di UI — di pull request, tampilan blame, dan riwayat commit. Setel ke sesuatu yang jelas agar rekan tim tahu siapa yang membuat perubahan.
Pemecahan Masalah isu git config username
Jika ada hal terkait git username yang tidak berfungsi, kemungkinan besar Anda akan menemukan penyebab dan solusinya di sini.
Git mengatakan "please tell me who you are" atau tidak dapat mendeteksi identitas Anda otomatis
Anda akan melihat galat seperti ini saat mencoba commit:
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
Ini berarti Git belum memiliki user.email Anda, dan terkadang user.name juga belum disetel. Perbaiki dengan menyetel keduanya secara global:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
Setelah itu, commit akan berfungsi.
Commit saya menampilkan nama yang salah di GitHub atau GitLab
Periksa nama apa yang sebenarnya digunakan Git di repo tersebut:
git config user.name
Jika menampilkan nama yang salah, mungkin ada override lokal. Perbaiki dengan perintah ini:
git config user.name "Correct Name"
Commit baru akan menggunakan nama yang benar, tetapi commit lama yang sudah Anda push akan tetap menggunakan nama penulis aslinya.
Saya memperbarui Git username, tetapi commit lama masih menampilkan nama lama
Metadata commit tertanam ke dalam riwayat Git saat Anda membuat commit.
Mengubah user.name hanya memengaruhi commit ke depan. Jika Anda perlu mengubah nama penulis pada commit lama, Anda harus menulis ulang riwayat menggunakan git rebase --interactive atau git filter-repo. Ini tingkat lanjut, berisiko pada branch bersama, dan biasanya tidak sepadan.
Saya terus tertukar identitas saat berpindah proyek
Gunakan includeIf untuk beralih identitas secara otomatis berdasarkan lokasi repo.
Tambahkan ini ke ~/.gitconfig:
[includeIf "gitdir:~/company/"]
path = ~/.gitconfig-company
[includeIf "gitdir:~/personal/"]
path = ~/.gitconfig-personal
Lalu buat ~/.gitconfig-company dengan identitas kerja Anda dan ~/.gitconfig-personal dengan identitas pribadi Anda. Git memilih yang tepat secara otomatis berdasarkan lokasi repo — tidak ada lagi salah commit dengan nama yang keliru.
Kesimpulan
Sebagai penutup, menyetel Git username dengan benar menjaga riwayat commit tetap rapi dan memudahkan kolaborasi.
Saat setiap commit menampilkan nama penulis yang benar, tim Anda dapat melacak siapa yang membuat perubahan. Tinjauan kode berjalan lebih cepat, anotasi blame lebih masuk akal, dan riwayat proyek tetap mudah dibaca. Hal ini semakin penting seiring proyek tumbuh dan lebih banyak orang berkontribusi.
Jika Anda berpindah antara proyek kerja dan pribadi, atau menggunakan nama berbeda untuk klien yang berbeda, Anda tidak perlu beralih konfigurasi secara manual setiap saat. Atur sekali dengan override lokal atau includeIf, dan Git akan memilih yang tepat setiap kali.
Jika Anda siap melangkah lebih jauh dan menghilangkan semua kebingungan terkait Git dan GitHub, sumber daya DataCamp berikut adalah tujuan terbaik selanjutnya:
FAQs
Apa perbedaan antara Git username dan GitHub username?
Git username Anda (user.name) adalah apa yang Anda setel secara lokal di konfigurasi Anda. Itu hanya metadata yang dicantumkan Git pada commit. GitHub username adalah handle akun Anda yang muncul di URL seperti github.com/your-handle. Keduanya adalah sistem yang sepenuhnya terpisah dan tidak harus sama. GitHub menggunakan alamat email untuk menautkan commit ke akun Anda, bukan username.
Bagaimana cara memeriksa Git username yang sedang saya gunakan?
Jalankan git config user.name di dalam repo untuk melihat username aktif yang akan digunakan Git untuk commit berikutnya. Jika Anda telah menyetel override lokal, Anda akan melihat itu alih-alih default global. Gunakan git config --list --show-origin untuk melihat persis file konfigurasi mana yang menyetel nilainya.
Bisakah saya menggunakan Git username berbeda untuk proyek yang berbeda?
Bisa, dan sebaiknya dilakukan jika Anda mengerjakan proyek pribadi dan kerja. Setel nama pribadi Anda secara global dengan git config --global user.name "Your Name", lalu timpa di repo tertentu dengan git config user.name "Work Name". Untuk otomatisasi yang lebih baik, gunakan includeIf di ~/.gitconfig untuk beralih identitas otomatis berdasarkan lokasi folder.
Mengapa commit lama saya masih menampilkan nama yang salah setelah saya memperbarui Git username?
Metadata commit tertanam ke dalam riwayat Git saat Anda membuat commit. Mengubah user.name hanya memengaruhi commit di masa mendatang. Commit lama mempertahankan nama penulis aslinya secara permanen. Anda harus menulis ulang riwayat dengan git rebase --interactive atau git filter-repo untuk mengubah nama lama, yang berisiko pada branch bersama dan biasanya tidak sepadan.
Bagaimana cara menghentikan kesalahan commit dengan identitas yang salah saat berganti antara proyek kerja dan pribadi?
Siapkan includeIf di ~/.gitconfig untuk otomatis menggunakan identitas berbeda berdasarkan lokasi repo. Buat file konfigurasi terpisah untuk kerja dan pribadi, lalu Git memilih identitas yang tepat berdasarkan path folder repo. Dengan begitu Anda tidak perlu mengganti konfigurasi secara manual atau khawatir tentang nama mana yang digunakan saat commit.

