อัปเดต 2012:
ดูคำตอบของMike Morearty :
รวม
คุณสามารถรวมหนึ่งไฟล์ config จากอีกไฟล์หนึ่งโดยการตั้งค่าinclude.path
ตัวแปรพิเศษให้เป็นชื่อของไฟล์ที่จะรวม
ไฟล์ที่รวมจะถูกขยายทันทีเช่นถ้าพบเนื้อหาในตำแหน่งของคำสั่ง include
หากค่าของinclude.path
ตัวแปรเป็นพา ธ สัมพัทธ์พา ธ จะถูกพิจารณาว่าสัมพันธ์กับไฟล์คอนฟิกูเรชันที่พบคำสั่ง include
ค่าของinclude.path
อยู่ภายใต้การขยายตัวของตัวหนอน: ~/
ถูกขยายเป็นค่าของ$HOME
และ~user/
ไปยังไดเรกทอรีบ้านของผู้ใช้ที่ระบุ
ฉันไม่คิดเช่นนั้น.
ฉันอยากจะตั้งค่านั้นใน~/.gitconfig
ไฟล์
ไฟล์การกำหนดค่าเฉพาะผู้ใช้ เรียกอีกอย่างว่าไฟล์กำหนดค่า "ส่วนกลาง"
ด้วยวิธีนี้จะทำให้ไฟล์. gitconfig โครงการเฉพาะเสร็จสมบูรณ์โดยไม่ต้องเผยแพร่เมื่อส่งไปยัง GitHub ดูเพิ่มเติมที่คำตอบ SOนี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไฟล์กำหนดค่าทั่วโลก
Git มีไฟล์กำหนดค่า3 ไฟล์
bjeanesเพิ่มในความคิดเห็น:
ดูเหมือนว่าทุกคนพลาดจุดคำถามนี้ไปแล้ว
เดวิดเห็นได้ชัดว่าต้องการที่จะผลักดัน repo ของไฟล์ที่จุดของเขาทั้งหมด ( bashrc
, gemrc
ฯลฯ ) รวมทั้งตัวเขา.gitconfig
เพื่อให้เขาสามารถมีการตั้งค่าทั้งหมดของเขาในเครื่องของเขาทั้งหมด
วิธีที่จะผลักดันบางส่วนของ.gitconfig
ไฟล์โดยรวมและไม่สนใจรายการส่วนตัวคือสิ่งที่เขา (และฉันสำหรับเรื่องนั้น) เป็นหลังจาก
วิธีที่เป็นไปได้คือการใช้ไดรเวอร์ตัวกรอง smudge / cleanเพื่อถอดรหัส / เข้ารหัสไฟล์หนึ่งไฟล์ที่มีข้อมูลสำคัญส่วนตัว (ดูที่เธรดนี้ ) เพื่อให้ไฟล์โลคัลเช่น ~ / .gitconfig สมบูรณ์ด้วยส่วนที่ถอดรหัสซึ่งเกี่ยวข้องกับสิ่งนั้น ไฟล์.
ด้วยวิธีนี้คุณสามารถมี repo Git พร้อมไฟล์ dot ทั้งหมดของคุณรวมทั้งไฟล์เดียวที่มีข้อมูลเข้ารหัสซึ่งหมายถึงการถอดรหัสและเพิ่มลงในไฟล์ dot ดังกล่าว
ใช้.gitattributes
(หรือ.git/info/a..
):
myPrivateInfosFile filter=gpg diff=gpg
ในไฟล์ repo .config ของคุณ:
[filter "gpg"]
smudge = gpg -d -q --batch --no-tty
clean = gpg -ea -q --batch --no-tty -r C920A124
[diff "gpg"]
textconv = decrypt
( โซลูชันที่ใช้ GPGหมายความว่าคุณได้สื่อสารคีย์ส่วนตัว / สาธารณะโดยวิธีอื่นบนคอมพิวเตอร์ปลายทางที่คุณต้องการกู้คืนไฟล์ dot ทั้งหมดของคุณด้วยการโคลน repo พิเศษนี้)
ที่จริงแล้วในกรณีของคุณสคริปต์ smudge จะต้องเสร็จสมบูรณ์ตามที่ต้องหลังจากถอดรหัสไฟล์นั้นแล้วไปที่และเพิ่มส่วนที่เกี่ยวข้องไปยัง~/.gitconfig
ไฟล์ทั่วโลกของคุณ(เว้นแต่คุณจะเขียนทับไฟล์กำหนดค่าโกลบอลด้วยตำแหน่งอื่น ) หรือไฟล์จุดอื่น ๆ เรื่อง.
https://kerneltrap.org/mailarchive/git/2008/3/13/1153274/thread
(ความไม่สะดวก gpg จะกล่าวถึงต่อไปในหัวข้อนี้ ) (ซึ่งแตกต่างจากการมี repo Git encrytped เต็มรูปแบบตามที่กล่าวไว้ที่นี่ )