Global Git ไม่สนใจ


841

ฉันต้องการตั้งค่า Git ให้ข้ามไฟล์บางไฟล์ไปทั่วโลก

ฉันได้เพิ่ม.gitignoreไฟล์ไปยังโฮมไดเร็กตอรี่ของฉัน ( /Users/me/) และฉันได้เพิ่มบรรทัดต่อไปนี้:

*.tmproj

แต่มันไม่ได้เพิกเฉยต่อไฟล์ประเภทนี้ความคิดใด ๆ ที่ฉันทำผิดไป?


7
นอกจากนี้คุณยังอาจต้องการตรวจสอบของ GitHub ละเลยคำแนะนำ - help.github.com/articles/ignoring-files ; พวกเขามีที่เก็บของรูปแบบการเพิกเฉยทั่วไป
drzaus

6
คุณอาจต้องการพิจารณาใช้. gignignore ในแต่ละโครงการ มิฉะนั้นถ้าคุณ (หรือคนอื่น) ลอกแบบโครงการบนระบบใหม่คุณจะต้องสร้างไฟล์แยกส่วนกลางและตั้งค่าใหม่ทุกครั้ง
Stan Kurdziel

25
ไฟล์ที่ไม่สามารถสร้างได้ที่โปรเจ็กต์สร้างควรอยู่ในไฟล์. gitignore ของโปรเจ็กต์, ไฟล์ที่ไม่สามารถสร้างได้ที่เครื่องของคุณสร้างขึ้นมาควรจะอยู่ใน. gitignore ทั่วโลก (เช่นไฟล์ temp ของ editor / IDE)
Pylinux

2
Python ไดเรกทอรีสภาพแวดล้อมเสมือนเป็นกรณีการใช้งานทั่วไปสำหรับรายการในการแยกไฟล์ทั่วโลกหรือในเครื่องของฉัน
สตูว์

10
@Pylinux ที่จริงแล้วสำหรับgit-scm , IDE ส่วนบุคคลและบางอย่างของเวิร์กโฟลว์สามารถไปในไฟล์ที่ไม่ได้ติดตาม.git/info/excludeใน repo ได้ดังนั้นจึงไม่จำเป็นต้องอยู่ในไฟล์โกลบอล นอกจากนี้ไฟล์ gitignore $HOME/.config/git/ignoreทั่วโลกเริ่มต้นและอัตโนมัติคือ
คิวเมนตัส

คำตอบ:


1421

คุณต้องตั้ง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


2
ตราบใดที่มันไม่ได้อยู่ในHEADดัชนีของคุณหรือของคุณก็ไม่ควรสร้างความแตกต่างไม่ว่าไฟล์จะถูกติดตามครั้งเดียวหรือไม่ก็ตาม มันอาจจะเป็นประโยชน์ถ้าคุณเพิ่มการส่งออกของgit status, git config core.excludesfileคำถามของคุณ
CB Bailey

2
ฉันสามารถใช้#ที่จุดเริ่มต้นของบรรทัดด้านใน~/.gitignoreเพื่อเพิ่มความคิดเห็นภายในไฟล์ข้ามส่วนกลางได้หรือไม่
Dror

9
ชุดเครื่องมือ Git Windows อย่างเป็นทางการรุ่นล่าสุดใช้ไวยากรณ์ * nix แทน หากบรรทัดนี้ใช้ไม่ได้ให้ลองใช้ * nix แทน
Andy Jones

9
ฉันไม่สามารถทำให้มันใช้งานได้โดยใช้%USERPROFILE%ตัวแปร ฉันต้องป้อนเส้นทางแบบเต็มไปยังไฟล์โดยใช้ตัวคั่นไดเรกทอรี * nix เช่น core.excludesfile C: /Users/User/.gitignore
Vince

21
ไม่สามารถทำงานกับตัวแปร% USERPROFILE% ฉันต้องใช้การตั้งค่า git - global core.excludesfile '~ / .gitignore' ใน windows เพื่อให้ตั้งค่าตำแหน่ง C: / users / {myusername} /. gitignore นอกจากนี้คำสั่งดังกล่าวจะตั้งค่าตำแหน่งของไฟล์ละเว้นที่ git จะใช้ ไฟล์จะต้องถูกสร้างขึ้นด้วยตนเองในตำแหน่งนั้นและเติมด้วยรายชื่อที่ไม่ใช้
muruge

301

ก่อนที่จะกำหนดค่าไฟล์โกลบอลที่แยกใหม่คุณอาจต้องการตรวจสอบสิ่งที่มันถูกกำหนดค่าโดยใช้คำสั่งนี้:

git config --get core.excludesfile

ในกรณีของฉันเมื่อฉันวิ่งมันฉันเห็นไฟล์ไม่รวมทั่วโลกของฉันได้รับการกำหนดค่าให้

~ / .gitignore_global
และมีรายการอยู่สองสามรายการที่นั่น ดังนั้นในกรณีของคำถามที่ให้มามันอาจสมเหตุสมผลที่จะตรวจสอบไฟล์ที่มีอยู่ในการแยกก่อนและเพิ่มมาส์กไฟล์ใหม่เข้าไป


2
มันใช้งานได้ดี ตั้งค่าไฟล์ gitignore ทั่วโลกเหมือนปกติ หนึ่งรายการต่อบรรทัด
Maarten Hartman

237

แม้ว่าคำตอบอื่น ๆ จะถูกต้องพวกเขากำลังตั้งค่า 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 / ข้ามแทน

1
มันเยี่ยมมาก ฉันไม่รู้เกี่ยวกับสิ่งนี้ ... แต่นี่ไม่ใช่ไฟล์ที่ถูกสร้างขึ้น? จะถูกเขียนทับเมื่อคุณอัพเดท / ติดตั้งใหม่หรือไม่?
danielsdesk

1
ฉันเชื่อว่าไฟล์ถูกสร้าง / แก้ไขโดยการรันgitคำสั่งบางอย่าง เนื่องจากเป็นไฟล์การตั้งค่าในไดเรกทอรีของผู้ใช้แต่ละคนฉันไม่คิดว่ามันจะถูกเขียนทับ
Steve Jorgensen

1
ฉันเห็นด้วยว่านี่ควรเป็นคำตอบที่ยอมรับได้ แต่ฉันไม่พบสิ่งนี้ใน-t̶h̶e̶̶d̶o̶c̶u̶m̶e̶n̶t̶a̶t̶i̶o̶n̶บทความช่วยเหลือ ( help.github.com/articles/ignoring-files )
AVProgrammer

1
@AVProgrammer ฉันเพิ่งแก้ไขคำตอบเพื่อสะท้อนการเปลี่ยนแปลงวิธีการจัดระเบียบเอกสารต้นฉบับ
Steve Jorgensen

7
ดูเหมือนว่าบน Windows ~/.config/git/ignoreเส้นทางนี้ยังมี
suriv

40

วิธีสร้างโกลบอล gitignore ตั้งแต่ต้น:

$ cd ~
$ touch .gitignore_global
$ git config --global core.excludesfile ~/.gitignore_global
  1. บรรทัดแรกเปลี่ยนไดเรกทอรีเป็น C:/Users/User
  2. หลังจากนั้นคุณสร้างไฟล์เปล่าที่มี.gitignore_globalนามสกุล
  3. และสุดท้ายตั้งค่าโกลบอลไม่สนใจไฟล์นั้น
  4. จากนั้นคุณควรเปิดด้วยแผ่นจดบันทึกและเพิ่มกฎการเพิกเฉยที่จำเป็น

18

จากที่นี่

หากคุณสร้างไฟล์ใน repo ชื่อ. gitignore git จะใช้กฎเมื่อดูไฟล์ที่จะคอมมิท โปรดทราบว่าคอมไพล์จะไม่เพิกเฉยต่อไฟล์ที่ถูกติดตามแล้วก่อนที่จะมีการเพิ่มกฎในไฟล์นี้เพื่อละเว้น ในกรณีเช่นนี้ไฟล์จะต้องถูกยกเลิกการติดตามโดยปกติจะเป็น:

git rm --cached filename

เป็นกรณีของคุณหรือไม่


ฉันกำลังพยายามละเว้นทั่วโลกซึ่งไม่ได้เกิดขึ้น !!
Mild Fuzz

@MildFuzz บน Linux core.excludesfileดูเหมือนว่าไฟล์จะตีความแตกต่างจาก.gitignoreไฟล์ หากคุณต้องการเพิกเฉยไดเรกทอรีทั้งหมดให้ใส่ชื่อไดเรกทอรีเช่น.vscode/แทนที่จะเป็น.vscode/*
Aspiring Dev

11

หากคุณใช้ระบบ Unix คุณสามารถแก้ปัญหาของคุณในสองคำสั่ง โดยที่ initialize configs แรกและไฟล์ที่สองจะแก้ไขด้วยไฟล์ที่จะไม่สนใจ

$ git config --global core.excludesfile ~/.gitignore
$ echo '.idea' >> ~/.gitignore

10
  1. สร้างไฟล์. gitignore ในโฮมไดเร็กตอรี่ของคุณ
touch ~/.gitignore
  1. เพิ่มไฟล์ลงไป ( ไม่รู้จักโฟลเดอร์ )

ตัวอย่าง

# these work
*.gz
*.tmproj
*.7z

# these won't as they are folders
.vscode/
build/

# but you can do this
.vscode/*
build/*
  1. ตรวจสอบว่า git มี gitignore ทั่วโลกหรือไม่
git config --get core.excludesfile
  1. บอกคอมไพล์ว่าไฟล์อยู่ที่ไหน
git config --global core.excludesfile '~/.gitignore'

Voila !!


"โฟลเดอร์ไม่ได้รับการยอมรับ" - นั่นเป็นเพียงแค่ผิดโฟลเดอร์ต่างๆก็ทำงานได้ดี ...
TobiX

7

จำไว้ว่าการรันคำสั่ง

git config --global core.excludesfile '~/.gitignore'

จะเพิ่งตั้งค่าไฟล์โกลบอล แต่จะไม่สร้างมันขึ้นมา สำหรับ Windows ให้ตรวจสอบไดเรกทอรีผู้ใช้ของคุณสำหรับ.gitconfigไฟล์และแก้ไขตามที่คุณต้องการ ในกรณีของฉันมันเป็นอย่างนั้น:

[core]
  excludesfile = c:/Users/myuser/Dropbox/Apps/Git/.gitignore

3

ฉันสามารถข้าม.tmprojไฟล์โดยรวมไฟล์ใดไฟล์หนึ่ง.tmprojหรือ*.tmprojใน/users/me/.gitignore-globalไฟล์ ของฉัน

โปรดทราบว่าชื่อไฟล์เป็นไม่ได้.gitignore-global .gitignoreมันไม่ทำงานโดยการรวม.tmprojหรือ*.tmprojในไฟล์ที่เรียกว่า.gitignoreใน/users/meไดเรกทอรี


4
ไม่สำคัญว่าคุณจะเรียกไฟล์ที่ไม่สนใจทั่วโลกของคุณตราบเท่าที่มันตรงกับการcore.excludesfileกำหนดค่า
CB Bailey

อา! จุดดี @CharlesBailey อย่างไรก็ตามนี่อาจเป็นสิ่งที่ผู้เขียนอาจต้องการตรวจสอบ เหตุผล.tmprojไฟล์ไม่ได้รับการละเว้นอาจจะเป็นเพราะผู้ใช้ไม่ได้เป็นexcludesfile .gitignore
Sri Sankaran

ฉันคิดว่าเขาคิดว่าผู้ใช้จะฉลาดพอที่จะรับรู้
WORMSS

2

คุณควรสร้างไฟล์แยกสำหรับสิ่งนี้ ตรวจสอบส่วนสำคัญนี้ซึ่งเป็นคำอธิบายที่ค่อนข้างดี

หากต้องการตอบคำถามของคุณคุณอาจต้องยกเลิกการทำดัชนี.tmprojไฟล์ (หากคุณได้เพิ่มไปยังดัชนีแล้ว) ด้วยgit rm --cached path/to/.tmprojหรือหรือgit addและไฟล์commitของคุณ.gitignore


ฉันกำลังพยายามทำสิ่งนี้ทั่วโลกไม่ใช่แค่กับ repo
Mild Fuzz

ใช่นั่นคือสิ่งที่ฉันเชื่อมโยงในส่วนสำคัญ ฉันสับสนเล็กน้อยจากคำถามดั้งเดิม คุณทำอย่างนั้นgit rm --cachedหรือ
Nic

ใช่แล้วลองดูสิ ดูเหมือนว่าฉันฉันได้ปฏิบัติตามคำแนะนำทั้งหมด! ฉันพลาดอะไรไป
Mild Fuzz

เป็นข้อเสนอแนะ, ฉันต้องการเพิ่มสถานะคอมไพล์ของคุณและข้อมูลไม่รวมกับคำถาม :)
Nic

2

บนระบบย่อย windows สำหรับ linux ฉันต้องไปที่รูทระบบย่อยcd ~/ก่อนtouch .gitignoreแล้วจึงอัพเดทการกำหนดค่า gitignore ทั่วโลกที่นั่น

ฉันหวังว่ามันจะช่วยให้ใครบางคน


0

หากคุณใช้ VSCODE คุณสามารถรับส่วนขยายนี้เพื่อจัดการงานให้คุณได้ มันจะตรวจสอบพื้นที่ทำงานของคุณทุกครั้งที่คุณบันทึกงานของคุณและช่วยให้คุณไม่สนใจไฟล์และโฟลเดอร์ที่คุณระบุใน vscode settings.json ไม่ สนใจ (ส่วนขยาย vscode)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.