ไม่สามารถเพิกเฉย.. aa / workspace.xml - ทำเครื่องหมายขึ้นเรื่อย ๆ


237

การใช้ PHPS รูปแบบฉันพยายามที่จะละเว้นสิ่งworkspace.xmlที่ปรากฏขึ้นทุกครั้งที่ฉันพยายามที่จะคอมไพล์คอมไพล์

.gitignoreหน้าตาของฉัน:

/.idea/
.idea/workspace.xml

เพราะ ณ จุดที่ไฟล์มุ่งมั่นฉันก็ดำเนินการ:

git rm --cached .idea/workspace.xml จากนั้นจึงทำการลบย้ายไปยัง repo ที่เปลือยเปล่า

แต่ไฟล์จะยังคงปรากฏขึ้นในภายหลังเมื่อฉันทำการเปลี่ยนแปลงในโครงการ

ความคิดใด ๆ เกี่ยวกับสิ่งที่ฉันหายไป?


พยายามทุกอย่างด้านล่างเพิ่มไปยัง gitignore แต่ก็ยังคงกลับมาโดยไม่สนใจ gitignore
Olaf

ดูเหมือนคำถามเดียวกันนี้ ตรวจสอบและดู ...
Luca Ballore

ตรวจสอบลิงค์นี้: stackoverflow.com/questions/8156299/… . ดูเหมือนว่าปัญหาเดียวกันของคุณ
Luca Ballore

คำตอบ:


288

ฉันกำลังเผชิญกับปัญหาเดียวกันและมันทำให้ฉันขึ้นกำแพง ปัญหานี้สิ้นสุดลงที่โฟลเดอร์. aide ถูกส่งไปยัง repo แล้วก่อนหน้านี้ดังนั้นพวกเขาจึงถูกติดตามโดย git ไม่ว่าคุณจะเพิกเฉยหรือไม่ก็ตาม ฉันจะแนะนำต่อไปนี้หลังจากปิด RubyMine / IntelliJ หรือ IDE ใด ๆ ที่คุณใช้:

mv .idea ../.idea_backup
rm .idea # in case you forgot to close your IDE
git rm -r .idea 
git commit -m "Remove .idea from repo"
mv ../.idea_backup .idea

หลังจากนั้นอย่าลืม. .a ใน. gitignore ของคุณ

แม้ว่ามันจะเพียงพอที่จะเพิกเฉยต่อมันใน. gitignore ของที่เก็บฉันขอแนะนำให้คุณละเว้น dotfiles ของ IDE ทั่วโลก

มิฉะนั้นคุณจะต้องเพิ่มลงในทุก. gitgnore สำหรับทุกโครงการที่คุณทำงาน นอกจากนี้หากคุณทำงานร่วมกับผู้อื่นดังนั้นวิธีปฏิบัติที่ดีที่สุดที่จะไม่ทำให้โครงการ. gitignore สกปรกด้วยการกำหนดค่าส่วนตัวที่ไม่เฉพาะเจาะจงกับซอร์สโค้ดของโครงการ


คำสั่งสุดท้ายควรเป็น "mv ../.idea_backup .idea" แทน "git mv ../.idea_backup .idea" เพื่อหลีกเลี่ยงข้อผิดพลาดในการคอมไพล์
Leo Caseiro

2
ฉันต้องทำgit rm .ideaแทนที่จะgit add .ideaไปทำงาน
Serge

ฉันเปลี่ยนไปaddด้วยrmแต่ในกรณีของฉันฉันต้องเพิ่ม-rเช่นกันเพื่อลบทั้งหมดซ้ำ git rm -r .idea
jmendiola

2
ว้าวขอบคุณ!! พยายามนับล้านวิธีที่แตกต่างกันเพื่อไม่เกิดประโยชน์ นี่คือวิธีการทีละขั้นตอนที่ถูกต้อง ความแตกต่างที่สำคัญที่ฉันพลาดคือการทำให้แน่ใจว่า IDE ของฉันถูกปิด - อย่าพลาดขั้นตอนนั้น! คำตอบที่ยอดเยี่ยม :)
จอนนี่ Asmar

ขอบคุณ! หลายครั้งที่ใช้เวลามองหาวิธีแก้ปัญหาการทำงานและพยายามแยก นี่เป็นวิธีที่ง่ายที่สุดในการทำเช่นนั้น
edepe

83

ฉันมีปัญหานี้ในตอนนี้ฉันต้องทำgit rm -f .idea/workspace.xml ตอนนี้ดูเหมือนว่ามันจะหายไป (ฉันต้องใส่มันด้วย.gitignore)


7
ฉันจะเพิ่มเฉพาะเพื่อประโยชน์ที่มีความแม่นยำเท่านั้นที่ความคิด Intellij ควรปิดเมื่อทำตามขั้นตอนนี้
LoreV

29

ฉันต้อง:

  • ลบไฟล์จาก git
  • ผลักดันการกระทำเพื่อรีโมททั้งหมด
  • ตรวจสอบให้แน่ใจว่าผู้มอบหมายอื่น ๆ ทั้งหมดได้รับการปรับปรุงจากระยะไกล

คำสั่ง

git rm -f .idea/workspace.xml
git remote | xargs -L1 git push --all

ผู้มอบหมายอื่น ๆ ควรเรียกใช้

git pull

7
ในขณะที่ฉันดีใจที่คำตอบนี้ฉันไม่สามารถช่วย แต่รู้สึกว่ามันจะมีประโยชน์มากขึ้นถ้าคำแนะนำของวิธีการทำตามขั้นตอน (เช่นคำสั่งบรรทัดคำสั่ง) รวม
flyingace

ตรวจสอบลิงค์นี้: stackoverflow.com/questions/8156299/… . ดูเหมือนปัญหาเดียวกันของคุณ
Luca Ballore

ปิด IDE \ n git rm -f .idea / workspace.xml \ n git กระทำ -m "การลบ workspace.xml" \ n แก้ไข. gitignore เพื่อยกเว้น workspace.xml \ n open IDE
Srneczek

27

ใน dir เดียวกับที่คุณเห็นไฟล์ปรากฏขึ้นทำ:

  • rm .idea/workspace.xml
  • git rm -f .idea/workspace.xml (as suggested by chris vdp)
  • vi .gitignore
  • i(เพื่อแก้ไข) เพิ่ม.idea/workspace.xmlในหนึ่งเส้นEsc,:wq

คุณควรจะดีตอนนี้


2
หรือเพื่อเพิ่มแถวเพื่อ .gitignore echo .idea/workspace.xml>>.gitignoreเพียงชนิด คุณไม่จำเป็นต้องเปิด vi สำหรับทุกสิ่ง อีกทางหนึ่งและสิ่งที่ฉันจะทำคือมีไฟล์. gitignore แยกต่างหากในไดเรกทอรี. aidea:echo workspace.xml>>.idea/.gitignore
Godsmith

17

หากต้องการลบ.idea/อย่างสมบูรณ์จากคอมไพล์โดยไม่ส่งผลกระทบต่อการกำหนดค่า IDE ของคุณคุณสามารถทำได้:

git rm -r --cached '.idea/'
echo .idea >> .gitignore
git commit -am "removed .idea/ directory"

6

หากคุณมีหลายโครงการใน repo git ของคุณ.idea/workspace.xmlจะไม่ตรงกับไฟล์ใด ๆ

ให้ทำดังนี้

$ git rm -f **/.idea/workspace.xml

และทำให้. gignignore ของคุณเป็นแบบนี้:

# User-specific stuff:
**/.idea/workspace.xml
**/.idea/tasks.xml
**/.idea/dictionaries
**/.idea/vcs.xml
**/.idea/jsLibraryMappings.xml

# Sensitive or high-churn files:
**/.idea/dataSources.ids
**/.idea/dataSources.xml
**/.idea/dataSources.local.xml
**/.idea/sqlDataSources.xml
**/.idea/dynamic.xml
**/.idea/uiDesigner.xml

## File-based project format:
*.iws

# IntelliJ
/out/

5

แค่บอกให้คอมไพล์ไม่คิดว่ามันเปลี่ยนไป

git update-index --assume-unchanged src/file/to/ignore

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


0

วิธีที่ฉันทำใน Android Studio ซึ่งใช้ IntelliJ ก็เป็นเช่นนี้ ในไดอะล็อกการคอมมิตฉันหวนกลับการเปลี่ยนแปลงสำหรับ workspace.xml จากนั้นจะถูกย้ายไปยังไฟล์ที่ไม่ผ่าน หลังจากนั้นฉันจะลบสิ่งนี้ออกจากกล่องโต้ตอบ commit ตอนนี้มันจะไม่ปรากฏในรายการการเปลี่ยนแปลง โปรดทราบว่า gitignore ของฉันมีอยู่แล้วรวมถึง .idea / workspace.xml


0

เนื่องจากในกรณีของฉันฉันกำลังดำเนินการโปรเจ็กต์ครั้งแรกเพียงแค่ลบ.gitและ.ideaโฟลเดอร์จากนั้นกำหนดค่าคอมไพล์ใหม่โดยใช้git initช่วยแก้ไขปัญหา ตอนนี้ฉันไม่มี.ideaเลย


0

ปัญหาเดียวกันสำหรับฉันด้วย PHPStorm

ในที่สุดฉันก็แก้ไขทำต่อไปนี้:

  • ลบ. aide /ไดเรกทอรี
  • ย้าย. gignignoreไปที่ระดับเดียวกันจะเป็น. ida /
  • เขียนไฟล์ที่คุณต้องละเว้นและ. aaa /เกินไป เพื่อให้แน่ใจว่าจะถูกละเว้นฉันใส่ต่อไปนี้:

    • .idea /
    • .idea
    • .idea / *

ฉันไม่ทราบว่าทำไมการทำงานในลักษณะนี้บางที. gignignoreจำเป็นต้องอยู่ในระดับเดียวกันของ. aideเพื่อที่จะไม่สนใจไดเรกทอรีนี้


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