ฉันมีที่เก็บพร้อมไฟล์Hello.java. เมื่อฉันรวบรวมมันHello.classไฟล์เพิ่มเติมจะถูกสร้างขึ้น
ฉันสร้างรายการสำหรับHello.classใน.gitignoreไฟล์ อย่างไรก็ตามไฟล์ดังกล่าวยังคงถูกติดตาม
ฉันจะทำให้ Git เพิกเฉยได้Hello.classอย่างไร
ฉันมีที่เก็บพร้อมไฟล์Hello.java. เมื่อฉันรวบรวมมันHello.classไฟล์เพิ่มเติมจะถูกสร้างขึ้น
ฉันสร้างรายการสำหรับHello.classใน.gitignoreไฟล์ อย่างไรก็ตามไฟล์ดังกล่าวยังคงถูกติดตาม
ฉันจะทำให้ Git เพิกเฉยได้Hello.classอย่างไร
คำตอบ:
ปัญหาคือ.gitignoreละเว้นไฟล์ที่ไม่ได้ติดตามมาก่อน (โดยgit add) รันgit reset name_of_fileเพื่อเลิกเก็บไฟล์และเก็บไว้ ในกรณีที่คุณต้องการที่จะยังเอาไฟล์ที่ได้รับจากพื้นที่เก็บข้อมูล (หลังจากการผลักดัน), git rm --cached name_of_fileการใช้งาน
git rm --cached name_of_fileจะลบไฟล์ออกจาก repo git ของคุณ แม้ว่าคุณจะเพิ่มลงในไฟล์. gitignore ของคุณ ที่ไม่ได้สนใจที่จะลบ
                    git reset name_of_fileลบการติดตามและไม่ลบไฟล์
                    วิธีเพิกเฉยไฟล์ใหม่
ทั่วโลก
เพิ่มเส้นทางไปยังไฟล์ที่คุณต้องการเพิกเฉย .gitignoreไฟล์ (และคอมมิท) รายการไฟล์เหล่านี้จะใช้กับผู้อื่นที่ตรวจสอบที่เก็บข้อมูล
ในท้องถิ่น
เพิ่มเส้นทางไปยังไฟล์ของคุณซึ่งคุณต้องการเพิกเฉยต่อ.git/info/excludeไฟล์ของคุณ รายการไฟล์เหล่านี้จะใช้กับสำเนาการทำงานในท้องถิ่นของคุณเท่านั้น
วิธีละเว้นไฟล์ที่ถูกเปลี่ยนแปลง (ชั่วคราว)
ในการเพิกเฉยไฟล์ที่ถูกเปลี่ยนแปลงเพื่อแสดงรายการว่าถูกแก้ไขคุณสามารถใช้คำสั่ง git ต่อไปนี้:
git update-index --assume-unchanged <file>
หากต้องการคืนค่าความไม่รู้นั้นให้ใช้คำสั่งต่อไปนี้:
git update-index --no-assume-unchanged <file>
localละเว้นคอมไพล์แล้วรีสตาร์ทระบบของฉันมันยังคงแสดงว่าทำงานได้โดยตรง
                    update-indexเคล็ดลับที่มีประโยชน์สมบูรณ์แบบเพื่อหลีกเลี่ยงการเปลี่ยนแปลง.gitignoreไฟล์ซึ่งถูกติดตามโดย Git!
                    เพิ่มบรรทัดต่อไปนี้ใน. gitignore:
/Hello.class
สิ่งนี้จะยกเว้น Hello.class จาก git หากคุณยืนยันแล้วให้รันคำสั่งต่อไปนี้:
git rm Hello.class
ถ้าคุณต้องการแยกไฟล์คลาสทั้งหมดออกจาก git ให้เพิ่มบรรทัดต่อไปนี้ใน. gitignore:
*.class
Hello.classลงใน.gitignoreจะไม่สนใจไฟล์ใด ๆ ที่เรียกว่าHello.classในไดเรกทอรีย่อย หากคุณต้องการละเว้นไฟล์Hello.classในไดเรกทอรีเดียวกับ.gitignoreไฟล์ให้ใช้/Hello.classบรรทัดแทน
                    .gitignoreไฟล์ไว้ที่ไหน
                    .gitignoreที่ใดก็ได้ในโครงการคอมไพล์ - หากเส้นทางเริ่มต้นด้วย/มันจะสัมพันธ์กับตำแหน่งของ.gitignoreไฟล์; มิฉะนั้นจะอ้างถึงไฟล์ซ้ำในไดเรกทอรีปัจจุบันและไดเรกทอรีที่สืบทอด
                    1) สร้าง.gitignoreไฟล์ ในการทำเช่นนั้นคุณเพียงสร้าง.txtไฟล์และเปลี่ยนนามสกุลดังนี้:

จากนั้นคุณต้องเปลี่ยนชื่อเขียนบรรทัดต่อไปนี้ในหน้าต่าง cmd:
 rename git.txt .gitignore
ในกรณีที่git.txtเป็นชื่อของไฟล์ที่คุณเพิ่งสร้าง
จากนั้นคุณสามารถเปิดไฟล์และเขียนไฟล์ทั้งหมดที่คุณไม่ต้องการเพิ่มลงในที่เก็บ ตัวอย่างเช่นของฉันมีลักษณะเช่นนี้:
#OS junk files
[Tt]humbs.db
*.DS_Store
#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.pyc
*.xml
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*
#Project files
[Bb]uild/
#Subversion files
.svn
# Office Temp Files
~$*
เมื่อคุณมีสิ่งนี้แล้วคุณจะต้องเพิ่มมันเข้าไปในที่เก็บ Git ของคุณ คุณต้องบันทึกไฟล์ในที่เก็บของคุณ
จากนั้นใน Git Bash คุณต้องเขียนบรรทัดต่อไปนี้:
git config --global core.excludesfile ~/.gitignore_global
หากที่เก็บมีอยู่แล้วคุณต้องทำดังต่อไปนี้:
git rm -r --cached .git add .git commit -m ".gitignore is now working"หากขั้นตอนที่ 2 ไม่ทำงานคุณควรเขียนเส้นทางทั้งหมดของไฟล์ที่คุณต้องการเพิ่ม
วิธีเพิกเฉย:
git update-index --assume-unchanged <path/to/file>
หากต้องการยกเลิกการเพิกเฉย:
git update-index --no-assume-unchanged <path/to/file>
lstat(2)ค่าใช้จ่ายเพิ่มเติมขอสงวนสิทธิ์ในการรายงานว่าเส้นทางได้รับการแก้ไข (... git commit -aมีอิสระที่จะยอมรับการเปลี่ยนแปลงนั้น) '
                    คุณสามารถใช้วิธีการด้านล่างเพื่อเพิกเฉย / ไม่สนใจการเปลี่ยนแปลงในไฟล์ที่ถูกติดตาม
git update-index --assume-unchanged <file>git update-index --no-assume-unchanged <file>lstat(2)ค่าใช้จ่ายเพิ่มเติมขอสงวนสิทธิ์ในการรายงานว่าเส้นทางได้รับการแก้ไข (... git commit -aมีอิสระที่จะยอมรับการเปลี่ยนแปลงนั้น) '
                    สร้าง.gitignoreในไดเรกทอรีที่เป็น. git คุณสามารถแสดงรายการไฟล์ในไฟล์โดยคั่นด้วยบรรทัดใหม่ คุณยังสามารถใช้สัญลักษณ์แทน:
*.o
.*.swp
.gitignoreไฟล์ (เว้นแต่ว่าโครงการนั้นได้รับคำสั่งจากโครงการ) คุณสามารถใส่รูปแบบสำหรับเครื่องมือที่คุณชื่นชอบในไฟล์แยกตามผู้ใช้ (ชุดcore.excludesFile); มันจะทำงานกับที่เก็บข้อมูลทั้งหมดของคุณ เช่นgit config --global core.excludesFile "$HOME/.git-user-excludes"วางไว้ในไฟล์นั้น
                    จากเว็บไซต์ GitHub อย่างเป็นทางการ:
หากคุณมีไฟล์อยู่แล้วและคุณต้องการเพิกเฉยมัน Git จะไม่เพิกเฉยต่อไฟล์หากคุณเพิ่มกฎในภายหลัง ในกรณีดังกล่าวคุณต้องยกเลิกการติดตามไฟล์ก่อนโดยรันคำสั่งต่อไปนี้ในเทอร์มินัลของคุณ:
git rm --cached FILENAME
หรือ
git rm --cached .
คุณควรเขียนสิ่งที่ชอบ
*.class
ลงใน.gitignoreไฟล์ของคุณ
*.classของคุณ.gitignoreเพื่อให้คอมไพล์ละเว้นไฟล์ทั้งหมดที่ลงท้าย.classด้วย
                    เพิ่มไฟล์ที่คุณต้องการละเว้นไฟล์.gitignore:
* .class
* .projects
* .prefs
*.โครงการ
โดยการสร้างไฟล์. gitignore ดูรายละเอียดที่นี่: Git Book - ละเว้นไฟล์
ตรวจสอบสิ่งนี้ด้วย: คุณจะทำให้ Git เพิกเฉยไฟล์โดยไม่ใช้. gitignore ได้อย่างไร?
หากคุณยืนยันไฟล์แล้วและคุณพยายามที่จะเพิกเฉยต่อการเพิ่ม.gitignoreไฟล์ Git จะไม่เพิกเฉย เพื่อที่คุณจะต้องทำสิ่งต่าง ๆ ด้านล่าง:
git rm --cached FILENAME
หากคุณกำลังเริ่มโครงการใหม่และคุณต้องการเพิ่มไฟล์บางอย่างใน Git ละเว้นให้ทำตามขั้นตอนด้านล่างเพื่อสร้างไฟล์ Git ที่ไม่สนใจ:
.gitignoreไฟล์คุณยังสามารถใช้. gitattributes (แทน. gitignore) เพื่อยกเว้นประเภทไฟล์ทั้งหมด ไฟล์อธิบายตัวเองได้ค่อนข้างสวย แต่ฉันกำลังวางเนื้อหาที่นี่เพื่อการอ้างอิง ให้ความสนใจกับบรรทัดสุดท้าย (* .class binary):
# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.gif binary
*.ico binary
*.mo binary
*.pdf binary
*.phar binary
*.class binary
เพิ่มบรรทัดต่อไปนี้ใน. git / info / แยก: 
Hello.class
.gitหรือไม่?
                    ฉันมีปัญหาคล้ายกับไฟล์ "dump.rdb" 
ฉันพยายามเพิ่มไฟล์นี้ในรูปแบบต่างๆลงในไฟล์. gignignore แต่ใช้วิธีการเดียวเท่านั้น
เพิ่มชื่อไฟล์ของคุณที่ท้ายไฟล์. gitignore
หมายเหตุ: การเพิ่มไฟล์ในที่อื่นไม่ทำงาน
ตัวอย่างเช่นดู: https://gitlab.com/gitlab-org/gitlab-ce/raw/b3ad3f202478dd88a3cfe4461703bc3df1019f90/.gitignore
หน้าเว็บนี้อาจมีประโยชน์และประหยัดเวลาเมื่อทำงานกับ.gitignoreอาจจะมีประโยชน์และประหยัดเวลาเมื่อทำงานกับ
มันจะสร้างไฟล์. gignignore โดยอัตโนมัติสำหรับ IDE และระบบปฏิบัติการที่แตกต่างกันด้วยไฟล์ / โฟลเดอร์เฉพาะที่คุณมักไม่ต้องการดึงไปยังที่เก็บ Git ของคุณ (เช่นโฟลเดอร์เฉพาะของ IDE และไฟล์กำหนดค่า)
ฉันลองสิ่งนี้ -
git status
.idea/xyz.xml
.idea/pqr.iml
Output
.DS_Store
echo "
.idea/xyz.xml
.idea/pqr.iml
Output
.DS_Store" >> .gitignore
git status
.gitignore
ในทำนองเดียวกันเราสามารถเพิ่มไดเรกทอรีและ dir ย่อยทั้งหมดของมัน / ไฟล์ที่เราต้องการที่จะละเว้นในสถานะ git โดยใช้directoryname/*และฉันดำเนินการคำสั่งนี้จากsrcไดเรกทอรี
git rm -r --cached .git add .ฉันได้ลอง--assume-unchangedและยัง.gitignoreไม่ดี พวกเขาทำให้มันยากที่จะสลับสาขาและยากที่จะรวมการเปลี่ยนแปลงจากคนอื่น นี่คือทางออกของฉัน:
เมื่อฉันยืนยันฉันจะลบไฟล์ออกจากรายการด้วยตนเองการเปลี่ยนแปลง
ก่อนที่ฉันจะดึงฉันเก็บไฟล์ที่ถูกเปลี่ยนแปลง และหลังจากที่ดึงผมทำป๊อปซ่อน
ขั้นตอนที่ 3 บางครั้งจะทำให้เกิดการรวมและอาจทำให้เกิดความขัดแย้งที่คุณต้องแก้ไขซึ่งเป็นสิ่งที่ดี
สิ่งนี้ทำให้ฉันสามารถทำการเปลี่ยนแปลงในท้องถิ่นที่ไม่ได้แชร์กับผู้อื่นในทีม