Opsi Konfigurasi Git yang Populer
(jvns.ca)-
pull.ff onlyataupull.rebase true- Kedua pengaturan ini bertujuan mencegah pembuatan merge commit secara tidak sengaja saat menjalankan
git pulljika branch berbeda dari branch upstream. pull.rebase truesetara dengan menjalankangit pull --rebasesetiap saat.pull.ff onlysetara dengan menjalankangit pull --ff-onlysetiap saat.- Tidak ada gunanya menggunakan keduanya sekaligus, karena
--ff-onlyakan menimpa--rebase.
- Kedua pengaturan ini bertujuan mencegah pembuatan merge commit secara tidak sengaja saat menjalankan
-
merge.conflictstyle zdiff3- Pengaturan yang membuat konflik merge lebih mudah dibaca.
diff3mengubah cara konflik merge ditampilkan dari pengaturan default dengan menampilkan kode asli di tengah.zdiff3adalah versi yang ditingkatkan daridiff3dan dianggap lebih baik.
-
rebase.autosquash true- Fitur yang memudahkan perbaikan commit lama.
- Jika melakukan commit dengan
git commit --fixup OLD_COMMIT_ID, saat menjalankangit rebase --autosquash main, commitfixup!akan otomatis digabungkan dengan targetnya.
-
rebase.autostash true- Secara otomatis menjalankan
git stashdangit stash popsebelum dan sesudahgit rebase.
- Secara otomatis menjalankan
-
push.default simple,push.default current- Mengatur agar branch saat ini otomatis di-push ke branch remote dengan nama yang sama.
push.default simpleadalah pengaturan default, dan hanya bekerja jika branch tersebut sudah melacak branch remote.push.default currentselalu mendorong branch lokal ke branch remote dengan nama yang sama.
-
init.defaultBranch main- Saat membuat repositori baru, membuat branch
mainalih-alihmaster.
- Saat membuat repositori baru, membuat branch
-
commit.verbose true- Menambahkan seluruh diff commit ke editor teks saat menulis pesan commit, sehingga membantu mengingat isi pekerjaan.
-
rerere.enabled true- Mengingat cara Anda menyelesaikan konflik merge selama
git rebasedan secara otomatis menyelesaikan konflik tersebut.
- Mengingat cara Anda menyelesaikan konflik merge selama
-
help.autocorrect 10- Fitur koreksi otomatis git memeriksa salah ketik, tetapi tidak otomatis menjalankan perintah yang sudah diperbaiki.
- Untuk menjalankannya otomatis, atur
help.autocorrectke1,10,immediate, atauprompt.
-
core.pager delta- "Pager" yang digunakan untuk menampilkan output seperti
git diff,git log, dangit show. - Mengatur
deltasebagai alat tampilan diff tingkat lanjut dengan fitur penyorotan sintaks.
- "Pager" yang digunakan untuk menampilkan output seperti
-
diff.algorithm histogram- Algoritma diff default sering menimbulkan masalah saat urutan fungsi berubah.
diff.algorithm histogrammenampilkannya dengan lebih jelas.
-
core.excludesfile: .gitignore global- Mengatur file gitignore global yang berlaku untuk semua repositori.
-
includeIf: pengaturan git terpisah untuk pribadi dan kerja- Digunakan untuk mengonfigurasi alamat email yang berbeda untuk repositori pribadi dan kerja.
-
url."git@github.com:".insteadOf 'https://github.com/'- Secara otomatis mengganti
https://github.commenjadigit@github.com:.
- Secara otomatis mengganti
-
fsckobjects: pencegahan kerusakan data- Pengaturan yang secara aktif mendeteksi kerusakan data dan beberapa kali menyelamatkan tim.
-
Pengaturan terkait submodule
status.submoduleSummary truediff.submodule logsubmodule.recurse true
-
Pengaturan lainnya
blame.ignoreRevsFile .git-blame-ignore-revsbranch.sort -committerdatecolor.ui falsecommit.cleanup scissorscore.autocrlf falsecore.editor emacscredential.helper osxkeychaindiff.tool difftasticdiff.colorMoved defaultdiff.colorMovedWS allow-indentation-changediff.context 10fetch.prune truedanfetch.prunetagsgpg.format sshlog.date isomerge.keepbackup falsemerge.tool meldpush.followtags truerebase.missingCommitsCheck errorrebase.updateRefs true
-
Cara mengatur
- Umumnya diatur dengan
git config --global NAME VALUE. - Untuk menghapus opsi, edit
~/.gitconfigsecara manual.
- Umumnya diatur dengan
-
Pengaturan yang diubah setelah menulis artikel ini
diff.algorithm histogrambranch.sort -committerdatemerge.conflictstyle zdiff3
-
Penutup
- Akan berguna jika menanyakan pengaturan favorit banyak orang lalu mencantumkan yang paling sering disebut.
Pendapat GN⁺
- Hal terpenting dari artikel ini adalah kita bisa mengetahui opsi konfigurasi git yang sering digunakan para developer.
- Bagi software engineer pemula yang menggunakan git, pengaturan-pengaturan ini dapat membantu meningkatkan efisiensi kerja dan menyelesaikan masalah sehari-hari.
- Secara khusus, pengaturan seperti
merge.conflictstyle zdiff3ataurebase.autosquash truedapat mempermudah penyelesaian konflik merge dan pengelolaan riwayat commit, sehingga mengurangi masalah yang bisa muncul dalam proses kolaborasi.
4 komentar
Untuk menghapus opsi, Anda juga bisa menggunakan perintah
git config --global --unset NAMEUntuk memeriksa pengaturan Anda, tambahkan
git config --list.
Saya pernah mengalami situasi di mana pengaturannya sudah diterapkan di lingkungan pengembangan utama, lalu bingung kenapa tidak jalan di lingkungan lain karena ternyata belum dikonfigurasi di sana.. wkwkwk Sebagai developer yang memakai Git setiap hari, semoga makin banyak yang tertarik pada hal-hal terkait konfigurasi Git.
Opini Hacker News
core.autocrlfdansafecrlfgitattributesjika diperlukanaliasdi.gitconfigrebase.autosquashdan aliasfixuppull.rebasejuga penting, tetapifixuplebih sering digunakaninsteadOfadvice.statusHints,include.path,remote "origin".fetch,interactive.singleKey, dan lainnya.gitconfigpribadialias,tag,tar,log,pull,diff,difftool,pager,safe,advice,initdeltasebagai pageruser.useConfigOnlyuntuk menggunakan beberapa emailuser.emaildijadikan komentar, email diatur saat melakukan commit di repositori barumerge.conflictstylediff3memberi lebih banyak informasi untuk menyelesaikan konflikcore.commentChar,alias.newtask,alias.zip,git checkout -,format.pretty, pengaturandeltabranch.sort.gitconfigpribadialias.lg,alias.hist,alias.quick-push,alias.search,user,core,urlquick-pushIsi di atas merupakan ringkasan pengaturan
.gitconfigpribadi yang dibagikan pengguna di komentar Hacker News serta tips pengaturan Git yang mereka sukai. Pengaturan tersebut berfokus pada peningkatan efisiensi penggunaan Git, otomatisasi tugas tertentu, dan perbaikan pengalaman pengguna.