ฉันจะละเว้นไฟล์ทั้งหมดในโฟลเดอร์ที่มีที่เก็บ Git ใน Sourcetree ได้อย่างไร


86

ฉันมีที่เก็บ Bitbucket Git ที่จัดการด้วย Sourcetree

ฉันมีสองโฟลเดอร์ที่ต้องการคอมมิต แต่ฉันต้องละเว้นไฟล์ทั้งหมดในโฟลเดอร์เหล่านี้เนื่องจากมีเพียงไฟล์ชั่วคราว

ฉันจะทำเช่นนั้นได้อย่างไร?

คำตอบ:


54

เพิ่มสิ่งนี้ใน. gitignore:

*
!.gitignore

13
ควรเพิ่มในแต่ละโฟลเดอร์ที่คุณต้องการติดตาม การมีอยู่ของไฟล์นี้จะทำให้ git ติดตามโฟลเดอร์ (โดยการติดตามไฟล์นี้) *วิธีการละเว้นไฟล์ทั้งหมดและ!.gitignoreวิธีการไม่สนใจไฟล์ตัวเอง
บิลลี่ดวงจันทร์

2
ดังที่ Billy Moon อธิบายขอบคุณ คุณจึงสามารถสร้างไฟล์. gitignore ในไดเร็กทอรี ไฟล์นี้จะบอก Git ว่าจะเพิกเฉยหรือไม่ทำอะไร
Gergo Erdosi

21
คุณทำสิ่งนี้ใน SourceTree ได้อย่างไร?
1.21 กิกะวัตต์

1
คุณไม่จำเป็นต้องใช้ SourceTree สำหรับสิ่งนี้.gitginoreเป็นไฟล์ปกติเพียงแค่สร้างในไดเร็กทอรีที่คุณต้องการละเว้นเนื้อหา
Gergo Erdosi

1
ดังกล่าวโดย @ AD7six ด้านล่างจะไม่เพิ่ม! .gitignore เพื่อไฟล์ที่ไม่จำเป็น
Xcalibur

155

สำหรับผู้ใช้ Sourcetree: หากคุณต้องการละเว้นโฟลเดอร์ใดโฟลเดอร์หนึ่งให้เลือกไฟล์จากโฟลเดอร์นี้คลิกขวาที่ไฟล์แล้วทำ "ละเว้น ... " คุณจะมีเมนูป๊อปอัปที่คุณสามารถละเว้น "ละเว้นทุกสิ่งที่อยู่ด้านล่าง: <YOUR UNWANTED FOLDER>"

เมนูแรก

เมนูที่สอง

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


14
หากโฟลเดอร์ถูกยืนยันแล้วให้ลบออกก่อนทำการเปลี่ยนแปลงจากนั้นทำตามขั้นตอนข้างต้น
RMorrisey

16
ฉันมีตัวเลือก "ละเว้น" เป็นสีเทา มีใครรู้บ้างว่าทำไม?
Andrei Karcheuski

6
การละเว้นก็เป็นสีเทาสำหรับฉันเช่นกัน
Micah Zoltu

ไม่สนใจ add to git ไม่สนใจ? ถ้าไม่ทำไมไม่?
Joe Lloyd

1
@JoeLloyd ใช่มันจะเพิ่มการละเว้นคอมไพล์ คุณยังสามารถคอมมิตไฟล์ git ที่สร้าง / แก้ไขได้เช่นเดียวกับไฟล์อื่น ๆ
Kalzem

24

คลิกขวาที่ไฟล์→ ละเว้น → ละเว้นทุกอย่างอยู่ภายใต้

หากตัวเลือกละเว้นเป็นสีเทาแล้ว:

  1. จัดลำดับไฟล์ก่อน
  2. คลิกขวา→ หยุดการติดตาม
  3. ไฟล์นั้นจะปรากฏในบานหน้าต่างด้านล่างพร้อมเครื่องหมายคำถาม→คลิกขวาที่ไฟล์→ ละเว้น

ใส่คำอธิบายภาพที่นี่


7

เท่าที่ฉันทราบ Git ไม่ได้ติดตามโฟลเดอร์มีเพียงไฟล์เท่านั้นดังนั้นโฟลเดอร์ว่าง (หรือโฟลเดอร์ที่ไม่สนใจไฟล์ทั้งหมด) หากคุณต้องการให้โฟลเดอร์ปรากฏขึ้นเนื่องจากขั้นตอนบางอย่างในกระบวนการสร้างของคุณบางทีคุณอาจให้เครื่องมือสร้างของคุณสร้างขึ้นมาแทน? หรือคุณสามารถใส่ไฟล์ว่างเปล่าที่ไม่มีเครื่องหมายใด ๆ ลงในโฟลเดอร์และยืนยัน


1
คุณหมายความว่าถ้าฉันต้องการติดตามโฟลเดอร์ฉันต้องเพิ่มไฟล์ "ดัมมี่" และละเว้นส่วนที่เหลือ? : - /
rubdottocom

2
@rubdottocom: ฉันเชื่ออย่างนั้น; โฟลเดอร์มีอยู่ใน git เนื่องจากไฟล์ที่อยู่ในนั้นเท่านั้น ทำไมคุณต้องมีการควบคุมเวอร์ชันโฟลเดอร์ว่าง
Aasmund Eldhuset

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

ด้วยเหตุผลที่อธิบายโดย @AasmundEldhuset คำตอบที่ได้รับจาก Gergo มีทางออกที่ถูกต้อง
Billy Moon

@BillyMoon: ฉันยอมรับว่าอาจมีเหตุผล; ฉันสงสัยเกี่ยวกับความต้องการเฉพาะของเขาเพื่อที่เราจะได้แนะนำวิธีแก้ปัญหาที่เหมาะสมที่สุด :-) เคล็ดลับของ Gergo นั้นเรียบร้อยแม้ว่าจะเพิ่มไฟล์ดัมมี่ (มากหรือน้อย) ลงในโฟลเดอร์ตามที่ฉันแนะนำ วิธีแก้ปัญหาของเขาคือ git-ish มากกว่าดังนั้น +1 ให้กับเขา
Aasmund Eldhuset

5

หลังจากตีหัวของฉันเรื่องนี้เป็นเวลาอย่างน้อยหนึ่งชั่วโมงฉันขอเสนอคำตอบนี้เพื่อพยายามขยายความคิดเห็นของคนอื่น ๆ หากต้องการละเว้นโฟลเดอร์ / ไดเร็กทอรีให้ทำดังต่อไปนี้: หากคุณไม่มีไฟล์. gitignore ในรูทของโปรเจ็กต์ของคุณ (ชื่อตรงกับ ".gitignore") ให้สร้างไฟล์ข้อความจำลองในโฟลเดอร์ที่คุณต้องการแยกออก ด้านในของ Source Tree ให้คลิกขวาแล้วเลือก Ignore คุณจะได้ป๊อปอัปหน้าตาแบบนี้

ป้อนคำอธิบายภาพที่นี่

เลือก "ทุกอย่างที่อยู่ข้างใต้" และเลือกโฟลเดอร์ที่คุณต้องการละเว้นจากรายการแบบเลื่อนลง สิ่งนี้จะสร้างไฟล์. gitignore ในไดเร็กทอรีรูทของคุณและใส่ข้อกำหนดโฟลเดอร์ไว้ในนั้น

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

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


ในการสร้างไฟล์. gitignore ใน Widnows ให้ใช้คำสั่ง Git bash 'touch .gitignore'
Mikee

4

ดังที่ผู้อื่นกล่าวไว้: git ไม่ได้ติดตามโฟลเดอร์เฉพาะไฟล์

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

echo "*" > keepthisfolder/.gitignore
git add --force keepthisfolder/.gitignore
git commit -m "adding git ignore file to keepthisfolder"

การมีอยู่ของไฟล์หมายความว่าทุกคนที่ตรวจสอบที่เก็บจะมีโฟลเดอร์

เนื้อหาของไฟล์ gitignore จะหมายถึงอะไรก็ตามที่อยู่ในไฟล์นั้นจะถูกละเว้น

คุณไม่จำเป็นที่จะต้องไม่ละเลยไฟล์ .gitignore ตัวเอง มันเป็นกฎที่จะตอบสนองจุดประสงค์ใด ๆ เลยแม้แต่ครั้งเดียว

หรือ

หากคุณต้องการเก็บนิยามการละเว้นทั้งหมดไว้ในที่เดียวกันคุณสามารถสร้าง. gitignore ในรูทของโปรเจ็กต์ของคุณโดยมีเนื้อหาดังนี้:

*.tmp # example, ignore all .tmp files in any folder
path/to/keepthisfolder
path/to/keepthatfolder

และเพื่อให้แน่ใจว่ามีโฟลเดอร์อยู่

touch path/to/keepthisfolder/anything
git add --force path/to/keepthisfolder/anything
git commit -m "ensure keepthisfolder exists when checked out"

"อะไรก็ได้" สามารถเป็นอะไรก็ได้ ชื่อที่ใช้ทั่วไปคือ. gitignore, .gitkeep ว่างเปล่า


3

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

ไอคอนสีน้ำเงินควรปรากฏอยู่ข้างๆ คลิกขวาอีกครั้งแล้วคลิกละเว้น


2

ละเว้นโฟลเดอร์ทั้งหมดบนแผนผังแหล่งที่มา

   Just Open Repository >Repository setting > Edit git ignore File and 
   you can rite some thing like this :

 *.pdb 
*.bak 
*.dll
*.lib 
.gitignore
packages/ 
*/bin/
*/obj/ 

สำหรับโฟลเดอร์ bin และโฟลเดอร์ obj เพียงแค่เขียน: * / bin / * / obj /



-1

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


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