วิธีตั้งค่าอัตลักษณ์ Git ของฉัน
(benji.dog)วิธีตั้งค่าอัตลักษณ์ Git ของฉัน
-
บทนำ: บทความนี้อธิบายวิธีจัดการอัตลักษณ์ให้เหมาะกับสภาพแวดล้อมการทำงานผ่านการตั้งค่า Git ผู้เขียนค้นพบวิธีใช้
includeIfเพื่อรวมไฟล์ตามเงื่อนไขที่กำหนด -
การตั้งค่า Git:
- สามารถใช้
includeIfเพื่อรวมไฟล์ตั้งค่า Git คนละไฟล์ตามไดเรกทอรีที่กำหนดได้ - ตัวอย่างเช่น สามารถตั้งค่าให้ไดเรกทอรี Git ใต้
~/codeรวม~/.config/git/personalและใต้~/workรวม~/.config/git/work - ในแต่ละไฟล์จะมีข้อมูลอย่างชื่อผู้ใช้ อีเมล คีย์สำหรับลงนาม เป็นต้น
- สามารถใช้
-
การตั้งค่าตาม Remote URL:
- สามารถใช้
hasconfig:remote.*.urlเพื่อกำหนดค่า Git แบบมีเงื่อนไขเมื่อมี remote URL เฉพาะอยู่ - ตัวอย่างเช่น ในไดเรกทอรีที่มี remote อย่าง
github.com:orgname/**สามารถตั้งค่าให้ใช้~/.config/git/config-gh-org
- สามารถใช้
-
การตั้งค่า SSH key:
- ควรตั้งค่า SSH key เพื่อให้สามารถ
pullและpushไปยัง remote ได้ - ในไฟล์
~/.ssh/configสามารถตั้งค่าHostและIdentityFileเพื่อใช้ SSH key ที่เหมาะกับแต่ละ remote - หากต้องการใช้
IdentityFileคนละตัวกับHostnameเดียวกัน ต้องตั้งค่าHostให้แตกต่างกัน
- ควรตั้งค่า SSH key เพื่อให้สามารถ
-
การใช้การตั้งค่า SSH ใน Git config:
- หากต้องการใช้การตั้งค่า SSH ที่ต่างกันสำหรับบางรีโพซิทอรี สามารถใช้
insteadOfใน Git config เพื่อแทนที่ URL ได้ - ตัวอย่างเช่น สามารถใช้
gh-work:orgnameแทนgithub.com:orgnameเพื่อให้มีการใช้การตั้งค่า SSH ที่ถูกต้อง
- หากต้องการใช้การตั้งค่า SSH ที่ต่างกันสำหรับบางรีโพซิทอรี สามารถใช้
-
ข้อพิจารณา:
- ผู้เขียนมองว่าแนวทางนี้อาจมีปัญหาอยู่บ้าง และอยากได้ความคิดเห็นว่ามีวิธีที่ดีกว่านี้หรือไม่
แหล่งอ้างอิง
- ผู้เขียนอ้างอิงบทความบล็อกหลายชิ้นเกี่ยวกับวิธีจัดการอัตลักษณ์ Git หลายแบบ
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
อธิบายวิธีแยกตัวตน SSH และ Git โดยใช้ชื่อ
gh-workโดยที่ Git repository ทั้งหมดที่โคลนด้วยgh-workจะใช้การตั้งค่าจากgh-work.incและใช้คีย์ลงนามเดียวกับการตั้งค่า SSHมีเรื่องเล่าว่าตอนทำงานที่สตาร์ทอัพแห่งหนึ่ง มีเพื่อนร่วมงานคนหนึ่งเปลี่ยนตัวตนทุกวันเป็นชื่อแนวเทพนิยาย แม้จะไม่ช่วยด้านนิติวิทยาศาสตร์ของระบบควบคุมเวอร์ชันนัก แต่อาจเป็นการเตือนว่าคุณสามารถใส่อะไรก็ได้ลงไปในการตั้งค่าตัวตน
เสนอวิธีเพิ่มนามแฝงสำหรับตัวตนไว้ใน
.gitconfigเพื่อให้หลังจากเริ่มต้น repository หรือโคลนแล้ว สามารถรันคำสั่งgit config-companyหรือgit config-personalได้อธิบายวิธีจัดการ submodule ได้ง่ายโดยไม่ต้องแก้
~/.ssh/configด้วยการตั้งค่าคำสั่ง SSH ไว้ใน~/.gitconfigแนะนำวิธีจัดการการตั้งค่า Git แยกตามไดเรกทอรีด้วย
includeIfและhasconfig:remoteซึ่งมีประโยชน์ตอนโคลน repository ด้วยแนะนำอย่างยิ่งว่าสำหรับที่ปรึกษา ควรใช้อุปกรณ์แยกสำหรับงาน หรืออย่างน้อยก็ใช้ผู้ใช้ OS แยกต่างหาก การใช้อุปกรณ์ส่วนตัวทำงานอาจมีความเสี่ยง
อธิบายวิธีจัดการการตั้งค่า Git ด้วย NixOS และ home-manager โดยใช้เงื่อนไข
hasconfig:remoteเพื่อตั้งค่าอีเมลเฉพาะอธิบายวิธีคงความซับซ้อนของ SSH ไว้ใน
~/.sshและแยก include config ตามลูกค้าหรือโปรเจกต์ โดยกำหนด alias ให้เมื่อไม่มีชื่อโฮสต์อย่าง GitHubอธิบายวิธีแยกงานกับงานส่วนตัวด้วย
gitdirและชี้ว่าhasconfig:remoteเป็นตัวเปลี่ยนเกมอธิบายวิธีแยกจัดการ repository งานและส่วนตัวไว้ที่
~/devและ~/srcโดย include ไฟล์ตั้งค่า Git คนละชุดตามพาธอธิบายวิธีตั้งค่าไฟล์
.gitconfigสำหรับงานส่วนตัวและงานบริษัทให้ใช้อีเมลและคีย์ลงนามต่างกัน พร้อมเปิดใช้การลงนามด้วย GPG สำหรับ commit