59 poin oleh GN⁺ 2024-02-17 | 4 komentar | Bagikan ke WhatsApp
  • pull.ff only atau pull.rebase true

    • Kedua pengaturan ini bertujuan mencegah pembuatan merge commit secara tidak sengaja saat menjalankan git pull jika branch berbeda dari branch upstream.
    • pull.rebase true setara dengan menjalankan git pull --rebase setiap saat.
    • pull.ff only setara dengan menjalankan git pull --ff-only setiap saat.
    • Tidak ada gunanya menggunakan keduanya sekaligus, karena --ff-only akan menimpa --rebase.
  • merge.conflictstyle zdiff3

    • Pengaturan yang membuat konflik merge lebih mudah dibaca.
    • diff3 mengubah cara konflik merge ditampilkan dari pengaturan default dengan menampilkan kode asli di tengah.
    • zdiff3 adalah versi yang ditingkatkan dari diff3 dan dianggap lebih baik.
  • rebase.autosquash true

    • Fitur yang memudahkan perbaikan commit lama.
    • Jika melakukan commit dengan git commit --fixup OLD_COMMIT_ID, saat menjalankan git rebase --autosquash main, commit fixup! akan otomatis digabungkan dengan targetnya.
  • rebase.autostash true

    • Secara otomatis menjalankan git stash dan git stash pop sebelum dan sesudah git rebase.
  • push.default simple, push.default current

    • Mengatur agar branch saat ini otomatis di-push ke branch remote dengan nama yang sama.
    • push.default simple adalah pengaturan default, dan hanya bekerja jika branch tersebut sudah melacak branch remote.
    • push.default current selalu mendorong branch lokal ke branch remote dengan nama yang sama.
  • init.defaultBranch main

    • Saat membuat repositori baru, membuat branch main alih-alih master.
  • 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 rebase dan secara otomatis menyelesaikan konflik tersebut.
  • help.autocorrect 10

    • Fitur koreksi otomatis git memeriksa salah ketik, tetapi tidak otomatis menjalankan perintah yang sudah diperbaiki.
    • Untuk menjalankannya otomatis, atur help.autocorrect ke 1, 10, immediate, atau prompt.
  • core.pager delta

    • "Pager" yang digunakan untuk menampilkan output seperti git diff, git log, dan git show.
    • Mengatur delta sebagai alat tampilan diff tingkat lanjut dengan fitur penyorotan sintaks.
  • diff.algorithm histogram

    • Algoritma diff default sering menimbulkan masalah saat urutan fungsi berubah.
    • diff.algorithm histogram menampilkannya 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/'

  • fsckobjects: pencegahan kerusakan data

    • Pengaturan yang secara aktif mendeteksi kerusakan data dan beberapa kali menyelamatkan tim.
  • Pengaturan terkait submodule

    • status.submoduleSummary true
    • diff.submodule log
    • submodule.recurse true
  • Pengaturan lainnya

    • blame.ignoreRevsFile .git-blame-ignore-revs
    • branch.sort -committerdate
    • color.ui false
    • commit.cleanup scissors
    • core.autocrlf false
    • core.editor emacs
    • credential.helper osxkeychain
    • diff.tool difftastic
    • diff.colorMoved default
    • diff.colorMovedWS allow-indentation-change
    • diff.context 10
    • fetch.prune true dan fetch.prunetags
    • gpg.format ssh
    • log.date iso
    • merge.keepbackup false
    • merge.tool meld
    • push.followtags true
    • rebase.missingCommitsCheck error
    • rebase.updateRefs true
  • Cara mengatur

    • Umumnya diatur dengan git config --global NAME VALUE.
    • Untuk menghapus opsi, edit ~/.gitconfig secara manual.
  • Pengaturan yang diubah setelah menulis artikel ini

    • diff.algorithm histogram
    • branch.sort -committerdate
    • merge.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 zdiff3 atau rebase.autosquash true dapat mempermudah penyelesaian konflik merge dan pengelolaan riwayat commit, sehingga mengurangi masalah yang bisa muncul dalam proses kolaborasi.

4 komentar

 
pril1 2024-02-23

Untuk menghapus opsi, Anda juga bisa menggunakan perintah git config --global --unset NAME

 
rumbarum 2024-02-21

Untuk memeriksa pengaturan Anda, tambahkan

git config --list.

 
pmc7777 2024-02-18

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.

 
GN⁺ 2024-02-17
Opini Hacker News
  • Pengaturan core.autocrlf dan safecrlf
    • Mencegah commit file CRLF dan memaksa konversi ke LF
    • Bisa dioverride dengan gitattributes jika diperlukan
  • Pengaturan alias di .gitconfig
    • Menetapkan alias untuk menampilkan riwayat commit dalam grafik yang ringkas
    • Konfigurasi diambil dari postingan Stack Overflow
  • rebase.autosquash dan alias fixup
    • Pengaturan yang sering dipakai untuk mengotomatiskan rebase setelah commit
    • pull.rebase juga penting, tetapi fixup lebih sering digunakan
  • Kegunaan pengaturan insteadOf
    • Menggunakan singkatan saat menambahkan remote GitHub
    • Menyebut berbagai pengaturan seperti advice.statusHints, include.path, remote "origin".fetch, interactive.singleKey, dan lainnya
  • Contoh pengaturan .gitconfig pribadi
    • Mencakup berbagai pengaturan alias, tag, tar, log, pull, diff, difftool, pager, safe, advice, init
  • Pengaturan untuk menggunakan delta sebagai pager
    • Menampilkan diff yang lebih mudah dibaca dan diberi syntax highlighting
    • Menambahkan alias untuk checkout ke branch default
  • Pengaturan user.useConfigOnly untuk menggunakan beberapa email
    • Setelah user.email dijadikan komentar, email diatur saat melakukan commit di repositori baru
  • Perlunya mengubah nilai default merge.conflictstyle
    • Gaya diff3 memberi lebih banyak informasi untuk menyelesaikan konflik
  • Pengaturan tambahan
    • core.commentChar, alias.newtask, alias.zip, git checkout -, format.pretty, pengaturan delta
  • Kesalahpahaman tentang pengaturan branch.sort
    • Sebenarnya mengurutkan berdasarkan tanggal commit, bukan branch yang paling baru digunakan
  • Contoh lain pengaturan .gitconfig pribadi
    • Pengaturan alias.lg, alias.hist, alias.quick-push, alias.search, user, core, url
    • Dapat mendefinisikan workflow sederhana melalui alias quick-push

Isi di atas merupakan ringkasan pengaturan .gitconfig pribadi 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.