ล้างแคชภายในของคอมไพล์


92

ฉันมีโครงการ Webstorm ที่ฉันกำลังจะกระทำ แต่ก่อนที่จะกดปุ่มกระทำใน Git Windows GUI ฉันจำได้ว่าฉันไม่ต้องการผูกมัด.ideaเนื้อหาในโฟลเดอร์ของฉัน

ดังนั้นฉันจึงใช้เว็บไซต์ที่สร้างขึ้นโดยอัตโนมัติ.gitignoresสำหรับ IDE บางอย่างและเพิ่มลงใน.gitignoreไฟล์ของฉัน

.ideaไฟล์ทั้งหมดที่ถูกเพิกเฉยอย่างชัดเจนยังคงแสดงขึ้นเพื่อยืนยันแม้ว่าฉันจะลบและเพิ่มไฟล์ที่เป็นปัญหาเข้าไป

ฉันยังยอมรับไฟล์ gitignore โดยไม่มีไฟล์อื่นและวางเนื้อหาของฉันใหม่ แต่ก็ยังไม่เพิกเฉยต่อไฟล์. ina

ฉันจะบอกให้ Git รีเฟรชหรือล้างแคชได้อย่างไร
ฉันลอง / cd ing เข้าไปในไดเร็กทอรีที่มีปัญหาแล้วพิมพ์

git clean -n

แต่ไม่มีไฟล์ปรากฏขึ้น

คำตอบ:


120

ไฟล์ .idea ทั้งหมดที่ถูกละเว้นอย่างชัดเจนยังคงแสดงขึ้นเพื่อคอมมิต

คุณต้องลบออกจากพื้นที่จัดเตรียม

git rm --cached .idea

ตอนนี้คุณต้องยอมรับการเปลี่ยนแปลงเหล่านั้นและจะถูกละเว้นจากจุดนี้เป็นต้นไป
เมื่อคอมไพล์เริ่มติดตามการเปลี่ยนแปลงจะไม่ "หยุด" ติดตามแม้ว่าจะมีการเพิ่มลงใน.gitignoreไฟล์ในภายหลังก็ตาม

คุณต้องลบออกอย่างชัดเจนจากนั้นทำการลบด้วยตนเองเพื่อที่จะละเว้นสิ่งเหล่านี้โดยสิ้นเชิง


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

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


3
ฉันไม่เคยกระทำไฟล์ที่ฉันพยายามจะเพิกเฉย แต่ .. สิ่งนี้บอกฉันfatal: pathspec '.idea' did not match any files
jozenbasin

เมื่อคุณพิมพ์ git status คุณเห็นหรือไม่? WebStorm อาจเพิ่มให้คุณหากคุณทำเครื่องหมายในช่องเพื่อเพิ่มไฟล์อัตโนมัติ
CodeWizard

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

คุณอาจพิจารณาเพิ่มการ-rลบแบบวนซ้ำ
Vishrant

79

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

git rm -r --cached .
git add .
git commit -am 'git cache cleared'
git push

นอกจากนี้ในการย้อนกลับการกระทำล่าสุดให้ใช้สิ่งนี้:

git reset HEAD^ --hard

6
อย่าใช้ git push หากคุณไม่ต้องการพุชการเปลี่ยนแปลงไปที่รีโมท อย่างไรก็ตามหากคุณทำเช่นนั้นให้ไปที่แท็บการควบคุมเวอร์ชันที่ด้านล่างของ android studio คลิกขวาที่กระทำก่อนหน้านี้แล้วเลือก "รีเซ็ตสาขาปัจจุบันเป็นที่นี่"
Swapnil

ส่วนการรีเซ็ตนั้นสร้างความสับสนได้ดีที่สุด แต่ฉันทำถึง 'git push' และก็เรียบร้อยดี
Seun S. Lawal

6

หากคุณทำการเปลี่ยนแปลงใด ๆ ในการละเว้นคอมไพล์คุณต้องล้างแคชคอมไพล์ด้วย

> git rm -r --cached . 
> git add . 
> git commit -m 'git cache cleared'
> git push

หากต้องการลบโฟลเดอร์หรือไฟล์ใด ๆ

git rm  --cached filepath/foldername


3

หลังจากนั้นการเปลี่ยนแปลงในไฟล์ git-ไม่สนใจให้รันคำสั่งนี้คำสั่งนี้จะลบแคชไฟล์ทั้งหมดไม่ใช่ไฟล์หรือการเปลี่ยนแปลง

git rm -r - แคช

หลังจากดำเนินการคำสั่งนี้คอมมิตไฟล์

สำหรับการลบไฟล์หรือโฟลเดอร์เดียวออกจากแคชให้ใช้คำสั่งนี้

git rm - แคช filepath / foldername


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