วิธีการตั้งค่าหลาย ๆ `core.excludesfile` ใน` .gitconfig`?


13

ฉันซิงค์~/.gitconfigและ~/.gitignoreไฟล์ใน ubuntu และ Mac โดยใช้ dropbox และสร้าง symlink ขึ้นมา

และexcludesfileมีการประกาศเช่นนี้

[core]
        editor = /usr/bin/vim
        excludesfile = /Users/username/.gitignore

ปัญหาคือโฮมไดเร็กตอรี่แตกต่างกันไปตามระบบปฏิบัติการ, ดังนั้นฉันต้องการการตั้งค่าหลายอย่างสำหรับแยกไฟล์

มันเป็นไปได้ที่จะกำหนดหลายcore.excludesfile?

คำตอบ:


17

คุณมีได้เพียงครั้งเดียวcore.excludesfileเท่านั้น การตั้งค่าสุดท้ายคือการตั้งค่าที่ใช้ อย่างไรก็ตามคุณไม่ต้องการไฟล์หลายไฟล์: git รองรับ~เป็นตัวย่อสำหรับโฮมไดเร็กตอรี่ของคุณ

[core]
    excludesfile = ~/.gitignore

โดยทั่วไปถ้าคุณต้องการให้มีหลายไฟล์ที่แยกออกจากกันวิธีแก้ปัญหาที่ง่ายที่สุดก็คือการสร้างไฟล์เดียวซึ่งเป็นการเชื่อมต่อของไฟล์อื่นและอัปเดตเมื่อใดก็ตามที่ไฟล์ใดไฟล์หนึ่งเปลี่ยนไป


.gitconfigจริง ๆ แล้วฉันอยู่ภายใต้การควบคุมเวอร์ชันโดย git น่าเสียดายที่ git ขยาย~เป็นเส้นทางแบบเต็ม$HOMEและอัปเดต.gitconfigตัวเองด้วยเส้นทางที่สมบูรณ์ พฤติกรรมนั้นใช้ได้ แต่ก็แสดงให้เห็นว่าเป็นการเปลี่ยนแปลงแบบไม่สเตจดังนั้นฉันจึงใช้git update-index --assume-unchanged .gitconfigเพื่อละเว้นการขยายตัว (พร้อมกับส่วนที่เหลือของไฟล์)
Dolph

2
@Dolph status-noreproคุณทำอะไรเพื่อให้~ขยายตัว ฉันได้รับ: git config --global core.excludesfile '~/.gitignore'; git config --global core.excludesfile~/.gitignore(git 1.7.9.5)
Gilles 'หยุดความชั่วร้าย'

1
@Dolph เป็นไปได้มากว่านี่เป็นการขยายตัวของเชลล์ หลังจากทั้งหมดถ้าคุณทำแล้วสิ่งที่จะดำเนินการจริงgit config --global core.excludesfile ~/.gitignore git config --global core.excludesfile /path/to/home/.gitignore
Radon Rosborough

1
@Gilles โปรดทราบด้วยว่าสำหรับgit-scmไฟล์~/.config/git/ignoreนั้นถ้ามีอยู่จะถูกละเว้นโดยอัตโนมัติโดยไม่จำเป็นต้องมีการกำหนดค่าส่วนกลาง
คิวเมนตัส
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.