ฉันต้องการตั้งค่า Git ให้ข้ามไฟล์บางไฟล์ไปทั่วโลก
ฉันได้เพิ่ม.gitignore
ไฟล์ไปยังโฮมไดเร็กตอรี่ของฉัน ( /Users/me/
) และฉันได้เพิ่มบรรทัดต่อไปนี้:
*.tmproj
แต่มันไม่ได้เพิกเฉยต่อไฟล์ประเภทนี้ความคิดใด ๆ ที่ฉันทำผิดไป?
ฉันต้องการตั้งค่า Git ให้ข้ามไฟล์บางไฟล์ไปทั่วโลก
ฉันได้เพิ่ม.gitignore
ไฟล์ไปยังโฮมไดเร็กตอรี่ของฉัน ( /Users/me/
) และฉันได้เพิ่มบรรทัดต่อไปนี้:
*.tmproj
แต่มันไม่ได้เพิกเฉยต่อไฟล์ประเภทนี้ความคิดใด ๆ ที่ฉันทำผิดไป?
คำตอบ:
คุณต้องตั้งcore.excludesfile
ค่าไฟล์กำหนดค่าส่วนกลางของคุณให้ชี้ไปที่ไฟล์ข้ามส่วนกลางนี้
เช่น
* nix หรือ Windows git bash:
git config --global core.excludesfile '~/.gitignore'
Windows cmd:
git config --global core.excludesfile "%USERPROFILE%\.gitignore"
Windows PowerShell:
git config --global core.excludesfile "$Env:USERPROFILE\.gitignore"
สำหรับ Windows C:\Users\{myusername}\.gitignore
มันตั้งอยู่ในสถานที่ คุณสามารถตรวจสอบว่าค่าการกำหนดค่าถูกต้องโดยทำ:
git config --global core.excludesfile
ผลลัพธ์ควรเป็นเส้นทางที่ขยายไปยังโปรไฟล์ผู้ใช้ของ.gitignore
คุณ ตรวจสอบให้แน่ใจว่าค่าไม่มี%USERPROFILE%
สตริงที่ไม่ขยาย
สำคัญ : คำสั่งดังกล่าวจะตั้งค่าตำแหน่งของไฟล์ที่จะใช้คอมไพล์ ไฟล์จะต้องถูกสร้างขึ้นด้วยตนเองในตำแหน่งนั้นและเติมด้วยรายชื่อที่ไม่ใช้ (จากความคิดเห็นของmuruge )
คุณสามารถอ่านเกี่ยวกับคำสั่งได้ที่https://help.github.com/articles/ignoring-files/#create-a-global-gitignore
HEAD
ดัชนีของคุณหรือของคุณก็ไม่ควรสร้างความแตกต่างไม่ว่าไฟล์จะถูกติดตามครั้งเดียวหรือไม่ก็ตาม มันอาจจะเป็นประโยชน์ถ้าคุณเพิ่มการส่งออกของgit status
, git config core.excludesfile
คำถามของคุณ
#
ที่จุดเริ่มต้นของบรรทัดด้านใน~/.gitignore
เพื่อเพิ่มความคิดเห็นภายในไฟล์ข้ามส่วนกลางได้หรือไม่
%USERPROFILE%
ตัวแปร ฉันต้องป้อนเส้นทางแบบเต็มไปยังไฟล์โดยใช้ตัวคั่นไดเรกทอรี * nix เช่น core.excludesfile C: /Users/User/.gitignore
ก่อนที่จะกำหนดค่าไฟล์โกลบอลที่แยกใหม่คุณอาจต้องการตรวจสอบสิ่งที่มันถูกกำหนดค่าโดยใช้คำสั่งนี้:
git config --get core.excludesfile
ในกรณีของฉันเมื่อฉันวิ่งมันฉันเห็นไฟล์ไม่รวมทั่วโลกของฉันได้รับการกำหนดค่าให้
~ / .gitignore_globalและมีรายการอยู่สองสามรายการที่นั่น ดังนั้นในกรณีของคำถามที่ให้มามันอาจสมเหตุสมผลที่จะตรวจสอบไฟล์ที่มีอยู่ในการแยกก่อนและเพิ่มมาส์กไฟล์ใหม่เข้าไป
แม้ว่าคำตอบอื่น ๆ จะถูกต้องพวกเขากำลังตั้งค่า global config ในขณะที่มีตำแหน่ง git เริ่มต้นสำหรับไฟล์ global git ที่ละเว้น:
*ห้าม:
~/.config/git/ignore
ของ windows:
%USERPROFILE%\git\ignore
คุณอาจจำเป็นต้องสร้างgit
ไดเรกทอรีและignore
ไฟล์ แต่จากนั้นคุณสามารถใส่ส่วนกลางของคุณลงในไฟล์นั้นและที่มัน!
ไฟล์ที่จะวางรูปแบบนั้นขึ้นอยู่กับวิธีการใช้งานของรูปแบบ
...
- รูปแบบที่ผู้ใช้ต้องการ Git จะไม่สนใจในทุกสถานการณ์ (เช่นการสำรองข้อมูลหรือไฟล์ชั่วคราวที่สร้างขึ้นโดยบรรณาธิการของผู้ใช้เลือก) มักจะไปลงในแฟ้มที่ระบุโดยในของผู้ใช้
core.excludesFile
~/.gitconfig
ค่าเริ่มต้นคือ $ XDG_CONFIG_HOME / git / ละเว้น หาก $ XDG_CONFIG_HOME ไม่ได้ถูกตั้งค่าหรือว่างเปล่าจะใช้ $ HOME / .config / git / ข้ามแทน
git
คำสั่งบางอย่าง เนื่องจากเป็นไฟล์การตั้งค่าในไดเรกทอรีของผู้ใช้แต่ละคนฉันไม่คิดว่ามันจะถูกเขียนทับ
~/.config/git/ignore
เส้นทางนี้ยังมี
วิธีสร้างโกลบอล gitignore ตั้งแต่ต้น:
$ cd ~
$ touch .gitignore_global
$ git config --global core.excludesfile ~/.gitignore_global
C:/Users/User
.gitignore_global
นามสกุลหากคุณสร้างไฟล์ใน repo ชื่อ. gitignore git จะใช้กฎเมื่อดูไฟล์ที่จะคอมมิท โปรดทราบว่าคอมไพล์จะไม่เพิกเฉยต่อไฟล์ที่ถูกติดตามแล้วก่อนที่จะมีการเพิ่มกฎในไฟล์นี้เพื่อละเว้น ในกรณีเช่นนี้ไฟล์จะต้องถูกยกเลิกการติดตามโดยปกติจะเป็น:
git rm --cached filename
เป็นกรณีของคุณหรือไม่
core.excludesfile
ดูเหมือนว่าไฟล์จะตีความแตกต่างจาก.gitignore
ไฟล์ หากคุณต้องการเพิกเฉยไดเรกทอรีทั้งหมดให้ใส่ชื่อไดเรกทอรีเช่น.vscode/
แทนที่จะเป็น.vscode/*
หากคุณใช้ระบบ Unix คุณสามารถแก้ปัญหาของคุณในสองคำสั่ง โดยที่ initialize configs แรกและไฟล์ที่สองจะแก้ไขด้วยไฟล์ที่จะไม่สนใจ
$ git config --global core.excludesfile ~/.gitignore
$ echo '.idea' >> ~/.gitignore
touch ~/.gitignore
ตัวอย่าง
# these work
*.gz
*.tmproj
*.7z
# these won't as they are folders
.vscode/
build/
# but you can do this
.vscode/*
build/*
git config --get core.excludesfile
git config --global core.excludesfile '~/.gitignore'
Voila !!
จำไว้ว่าการรันคำสั่ง
git config --global core.excludesfile '~/.gitignore'
จะเพิ่งตั้งค่าไฟล์โกลบอล แต่จะไม่สร้างมันขึ้นมา สำหรับ Windows ให้ตรวจสอบไดเรกทอรีผู้ใช้ของคุณสำหรับ.gitconfig
ไฟล์และแก้ไขตามที่คุณต้องการ ในกรณีของฉันมันเป็นอย่างนั้น:
[core]
excludesfile = c:/Users/myuser/Dropbox/Apps/Git/.gitignore
ฉันสามารถข้าม.tmproj
ไฟล์โดยรวมไฟล์ใดไฟล์หนึ่ง.tmproj
หรือ*.tmproj
ใน/users/me/.gitignore-global
ไฟล์ ของฉัน
โปรดทราบว่าชื่อไฟล์เป็นไม่ได้.gitignore-global
.gitignore
มันไม่ทำงานโดยการรวม.tmproj
หรือ*.tmproj
ในไฟล์ที่เรียกว่า.gitignore
ใน/users/me
ไดเรกทอรี
core.excludesfile
กำหนดค่า
.tmproj
ไฟล์ไม่ได้รับการละเว้นอาจจะเป็นเพราะผู้ใช้ไม่ได้เป็นexcludesfile
.gitignore
คุณควรสร้างไฟล์แยกสำหรับสิ่งนี้ ตรวจสอบส่วนสำคัญนี้ซึ่งเป็นคำอธิบายที่ค่อนข้างดี
หากต้องการตอบคำถามของคุณคุณอาจต้องยกเลิกการทำดัชนี.tmproj
ไฟล์ (หากคุณได้เพิ่มไปยังดัชนีแล้ว) ด้วยgit rm --cached path/to/.tmproj
หรือหรือgit add
และไฟล์commit
ของคุณ.gitignore
git rm --cached
หรือ
บนระบบย่อย windows สำหรับ linux ฉันต้องไปที่รูทระบบย่อยcd ~/
ก่อนtouch .gitignore
แล้วจึงอัพเดทการกำหนดค่า gitignore ทั่วโลกที่นั่น
ฉันหวังว่ามันจะช่วยให้ใครบางคน
หากคุณใช้ VSCODE คุณสามารถรับส่วนขยายนี้เพื่อจัดการงานให้คุณได้ มันจะตรวจสอบพื้นที่ทำงานของคุณทุกครั้งที่คุณบันทึกงานของคุณและช่วยให้คุณไม่สนใจไฟล์และโฟลเดอร์ที่คุณระบุใน vscode settings.json ไม่ สนใจ (ส่วนขยาย vscode)