3 poin oleh GN⁺ 2024-11-26 | 1 komentar | Bagikan ke WhatsApp

Cara menyiapkan identitas Git saya

  • Pendahuluan: Artikel ini menjelaskan cara mengelola identitas yang sesuai dengan lingkungan kerja melalui konfigurasi Git. Penulis menemukan cara menggunakan includeIf untuk menyertakan file berdasarkan kondisi tertentu.

  • Konfigurasi Git:

    • Dengan includeIf, Anda dapat menyertakan file konfigurasi Git yang berbeda berdasarkan direktori tertentu.
    • Misalnya, Anda dapat mengatur agar direktori Git di bawah ~/code menyertakan ~/.config/git/personal, dan yang di bawah ~/work menyertakan ~/.config/git/work.
    • Setiap file berisi informasi seperti nama pengguna, email, kunci penandatanganan, dan sebagainya.
  • Konfigurasi berbasis URL remote:

    • Dengan hasconfig:remote.*.url, Anda dapat menyusun konfigurasi Git secara kondisional saat URL remote tertentu ada.
    • Misalnya, pada direktori yang memiliki remote seperti github.com:orgname/**, Anda dapat mengatur penggunaan ~/.config/git/config-gh-org.
  • Pengaturan kunci SSH:

    • Anda perlu menyiapkan kunci SSH agar dapat melakukan pull dan push ke remote.
    • Di file ~/.ssh/config, Anda dapat mengatur Host dan IdentityFile agar setiap remote menggunakan kunci SSH yang sesuai.
    • Jika ingin memakai IdentityFile yang berbeda untuk Hostname yang sama, Anda harus mengatur nilai Host yang berbeda.
  • Menggunakan pengaturan SSH di Git config:

    • Jika ingin menggunakan pengaturan SSH yang berbeda untuk repositori tertentu, Anda dapat mengganti URL dengan insteadOf di Git config.
    • Misalnya, alih-alih github.com:orgname, Anda dapat menggunakan gh-work:orgname agar pengaturan SSH yang benar diterapkan.
  • Hal yang perlu dipertimbangkan:

    • Pendekatan ini mungkin memiliki masalah, dan penulis ingin mendapatkan masukan apakah ada cara yang lebih baik.

Referensi

  • Penulis merujuk pada berbagai tulisan blog tentang cara mengelola banyak identitas Git.

1 komentar

 
GN⁺ 2024-11-26
Komentar Hacker News
  • Menjelaskan cara membedakan identitas SSH dan Git dengan menggunakan nama gh-work. Semua repositori Git yang di-clone dengan gh-work akan mengikuti konfigurasi gh-work.inc dan menggunakan kunci penandatanganan yang sama seperti konfigurasi SSH

  • Saat bekerja di sebuah startup, ada seorang rekan kerja yang setiap hari mengganti identitasnya menjadi nama seperti dalam dongeng. Ini tidak membantu forensik version control, tetapi mungkin dimaksudkan untuk mengingatkan bahwa kita bisa menaruh apa saja dalam konfigurasi identitas

  • Mengusulkan cara menambahkan alias untuk identitas di .gitconfig, lalu menjalankan perintah git config-company atau git config-personal setelah menginisialisasi atau me-clone repositori

  • Menjelaskan cara mengelola submodule dengan mudah dengan menetapkan perintah SSH di ~/.gitconfig, tanpa perlu mengubah ~/.ssh/config

  • Memperkenalkan cara mengelola konfigurasi Git per direktori menggunakan includeIf dan hasconfig:remote. Ini juga berguna saat me-clone repositori

  • Sangat menyarankan agar konsultan menggunakan perangkat terpisah untuk pekerjaan, atau setidaknya pengguna OS yang terpisah. Menggunakan perangkat pribadi untuk pekerjaan bisa berisiko

  • Menjelaskan cara mengelola konfigurasi Git menggunakan NixOS dan home-manager. Menggunakan kondisi hasconfig:remote untuk menetapkan email tertentu

  • Menjelaskan cara mempertahankan kompleksitas SSH di ~/.ssh dan menyertakan konfigurasi terpisah per klien atau proyek. Jika tidak ada nama host seperti GitHub, alias diberikan

  • Menjelaskan cara memisahkan pekerjaan dan proyek pribadi menggunakan gitdir. hasconfig:remote benar-benar game changer

  • Menjelaskan cara memisahkan repositori kerja dan pribadi ke dalam ~/dev dan ~/src. File konfigurasi Git yang berbeda disertakan berdasarkan masing-masing path

  • Menjelaskan cara menyiapkan file .gitconfig pribadi dan kerja agar email serta kunci penandatanganan berbeda. Mengaktifkan penandatanganan GPG untuk menandatangani commit