Alur kerja Git harian menyuruh kita mengetik hal yang sama berulang-ulang: git status berkali-kali sebelum commit, git log --oneline --graph setiap kali membaca riwayat. Perintah-perintah itu pendek tetapi frekuensinya tinggi, dan Git punya mekanisme resmi untuk memendekkannya: alias — nama pintasan yang tersimpan di konfigurasi lalu dipakai persis seperti perintah bawaan. Karena alias ditulis dengan git config biasa, seluruh mekanisme level dan prioritas dari chapter git config
berlaku juga di sini; kita tinggal fokus ke pola pembuatannya dan batas-batasnya.
Membuat Alias #
Pola pembuatannya satu baris: kunci alias.<nama> dengan nilai berupa perintah yang hendak dipendekkan:
git config --global alias.st "status -sb"
git config --global alias.lg "log --oneline --graph"Mari kita bedah kedua perintah tersebut:
--globalmenempatkan alias di~/.gitconfigsehingga berlaku untuk semua repository milik akun.alias.stmendaftarkan nama barust— bagian setelah titik menjadi nama perintah pintasan.status -sbadalah perintah yang dijalankan saat kita mengetikgit st: status ringkas dengan info branch.alias.lgmemendekkan kombinasi favorit semua orang: riwayat satu baris per commit dengan gambar graph.
Nama alias tidak boleh memuat spasi; nilainya boleh memuat flag apa pun. Hasilnya tersimpan sebagai section tersendiri di ~/.gitconfig:
[user]
email = [email protected]
[alias]
st = status -sb
lg = log --oneline --graphBerkas di atas juga memuat kunci lain yang sudah terpasang — identitas email dari chapter sebelumnya — karena satu berkas menampung seluruh konfigurasi global. Daftar seluruh alias aktif bisa dilihat dengan pola baca dari chapter git config :
git config --global --listOutput yang Dihasilkan:
[email protected]
alias.st=status -sb
alias.lg=log --oneline --graphMemakai Alias #
Alias dipakai dengan mengetik namanya setelah git, sama seperti perintah bawaan. Untuk demo yang realistis, repository sandbox berisi tiga commit — dua di antaranya digabung lewat merge — dan satu perubahan yang belum di-commit. Kondisi pembuatan repository serta merge seperti ini dibahas tuntas di section Dasar Repository
dan Branch dan Merging
; kita langsung lihat hasil pakai aliasnya:
git stOutput yang Dihasilkan:
## main
M catatan.txtDua baris itu adalah seluruh isi git status -sb: branch aktif di baris pertama, perubahan yang belum di-staging di baris kedua. Versi lengkapnya butuh belasan baris dengan petunjuk di setiap bagian — untuk pemeriksaan kilat, alias ini menghemat waktu baca. Sekarang riwayatnya:
git lgOutput yang Dihasilkan:
* 1f739d8 Gabungkan fitur-pengingat
|\
| * d1b64e4 Tambah catatan kedua
|/
* 3104e5e Commit pertamaDeretan identitas commit seperti 1f739d8 berbeda di tiap mesin. Argumen tambahan tetap diteruskan ke perintah aslinya — git lg --all, misalnya, menjalankan git log --oneline --graph --all; kita akan sering memakai perilaku ini untuk flag yang tidak kita tempel di alias.
Alias Eksternal dengan Tanda Seru #
Nilai alias yang diawali tanda seru (!) tidak dijalankan sebagai subperintah Git, melainkan sebagai perintah shell. Kebutuhan paling umum: alias yang bekerja pada repository tertentu dari lokasi mana pun, memakai git -C <jalur> yang mengarahkan Git ke direktori lain:
git config --global alias.proyek '!git -C ~/proyek-utama status -sb'Bagian !git -C ~/proyek-utama membuka repository di ~/proyek-utama tanpa memedulikan direktori saat ini, lalu status -sb dijalankan pada repository itu. Nilai seperti ini perlu kutip ganda karena memuat spasi dan ~ yang harus diteruskan ke shell. Karena ~ hanya ada di lingkungan Unix, pengguna Windows memakai jalur seperti %USERPROFILE% atau jalur lengkap. Kita uji dari dalam repository lain:
cd ../demo-ch12
git proyekOutput yang Dihasilkan:
## mainAlias membaca status ~/proyek-utama meskipun kita sedang berada di repository demo-ch12. Begitu repository sasaran punya perubahan, keluarannya lengkap — setelah echo "gagasan baru" >> ~/proyek-utama/ide.txt:
git proyekOutput yang Dihasilkan:
## main
M ide.txtKeterbatasan Alias #
Alias adalah pengganti nama, bukan perintah baru. Konsekuensinya:
- Tanpa dokumentasi tersendiri.
git help -amemang menampilkan alias di bagian Command aliases, tetapi hanya nama dan perluasannya;git st --helphanya menerjemahkan ke bantuan perintah aslinya. Tidak ada tempat menuliskan deskripsi alias buatan sendiri, jadi daftargit config --get-regexp '^alias\.'tetap rujukan utama. - Nama bentrok diabaikan. Alias yang namanya sama dengan perintah bawaan — misalnya
alias.status— diabaikan Git; perintah bawaan selalu menang, seperti yang bisa kita buktikan dengan mendaftarkan lalu menjalankangit statusversi panjang. - Tanpa berbagi otomatis. Alias hidup di konfigurasi mesin, jadi rekan tim tidak melihat alias kita; berbeda dengan
.gitattributes, tidak ada berkas alias yang ikut repository.
Untuk kebutuhan yang lebih besar dari penggantian nama — misalnya command baru dengan banyak opsi — ekosistem menyediakan skrip terpisah atau perintah khusus, bukan alias.
Menghapus Alias #
Penghapusan memakai --unset seperti kunci lain:
git config --global --unset alias.stSetelahnya, isi [alias] di ~/.gitconfig tinggal lg dan proyek. Alias yang sudah dihapus kembali menjadi perintah tak dikenal — Git bahkan menawarkan kemiripan ejaan:
git stOutput yang Dihasilkan:
git: 'st' is not a git command. See 'git --help'.
The most similar commands are
status
reset
stage
stashDaftar usulan pada keluaran nyata di atas menjorok dengan karakter tab — Git memang menampilkannya begitu. Kumpulan alias produktif lain yang layak dicontoh tersedia di Pro Git: Git Aliases . Dengan perintah harian kini ringkas, satu bab konfigurasi masih tersisa untuk lingkungan jaringan terbatas: proxy, topik chapter berikutnya.