git เพิ่มทั้งหมดยกเว้นไม่สนใจไฟล์ในไฟล์. gitignore


120

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

git add *

คำสั่งดังกล่าวจะไม่เพิ่มไฟล์ใด ๆ เพราะตรวจพบไฟล์ที่ถูกละเลยโดย.gitignore

git add -f *

คำสั่งดังกล่าวจะเพิ่มไฟล์ทั้งหมดรวมถึงไฟล์ที่ฉันต้องการละเว้น

ดังนั้นฉันจะเพิ่มไฟล์ทั้งหมดในขณะที่ยังยึดติดกับไฟล์. gitignore ได้อย่างไร

คำตอบ:


251

ฉันคิดว่าคุณหมายถึงgit add .ซึ่งจะเพิ่มไฟล์ทั้งหมดลงใน repo ที่ AREN'T ระบุไว้ใน.gitignore- คุณสามารถดูการเปลี่ยนแปลงเหล่านี้ได้โดยพิมพ์git status

.ในทุบตีมักจะหมายถึงไดเรกทอรีนี้และไดเรกทอรีอื่น ๆ ทั้งหมดซ้ำดังนั้นถ้าคุณทำเช่นนี้จากระดับล่างของ repo ของคุณคุณควรเพิ่มไฟล์ทั้งหมด

ขั้นตอนคอมไพล์ตามปกติของฉันคือการสร้าง.gitignoreไฟล์และเพิ่มไฟล์โปรเจ็กต์ลงใน repo ฉันจะทดสอบ.gitignoreไฟล์โดยพิมพ์git statusหลังจากนำเข้าไฟล์ - ถ้าฉันเห็นไฟล์ที่ฉันเพิ่ม (เช่นเฉพาะ. php หรือ. html ไม่ใช่. mp3 หรือ. mov) คุณสามารถgit add .เพิ่มทั้งหมดและgit commit -m "initial commit"ไปที่ ยอมรับพวกเขาและคุณควรตั้งค่า


3
จะเกิดอะไรขึ้นถ้าฉันทำgit add --all .อะไรที่แตกต่างจากgit add .ในบริบทนี้
Katedral Pillon

2
มันเหมือนกับการเพิ่มคอมไพล์
user454232


13

ลองgit add . (ซึ่งหมายถึง "เพิ่มไฟล์ทั้งหมดในไดเร็กทอรีปัจจุบันและด้านล่าง")


5

อีกตัวเลือกหนึ่งคือการใช้ Git repo ของexcludeไฟล์ ไฟล์นี้ทำงานคล้ายกับ.gitignoreไฟล์ แต่ไม่ได้ผูกมัดกับ repo

จากเอกสาร Github :

คุณสามารถใช้เทคนิคนี้สำหรับไฟล์ที่สร้างขึ้นในเครื่องซึ่งคุณไม่คาดหวังให้ผู้ใช้รายอื่นสร้างขึ้นเช่นไฟล์ที่สร้างโดยโปรแกรมแก้ไขของคุณ

ใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบเพื่อเปิดไฟล์ที่เรียกว่า.git/info/excludeภายในรูทของที่เก็บ Git ของคุณ กฎใด ๆ ที่คุณเพิ่มที่นี่จะไม่ถูกเช็คอินและจะละเว้นไฟล์สำหรับที่เก็บในเครื่องของคุณเท่านั้น

  1. ใน Terminal ให้ไปที่ตำแหน่งของที่เก็บ Git ของคุณ
  2. ใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบเปิดไฟล์ .git/info/exclude
  3. เพิ่มกฎลงในexcludeไฟล์เช่นเดียวกับที่คุณทำกับ.gitignoreไฟล์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.