วิธีการทำให้ Git เพิกเฉยไฟล์. aaa ที่สร้างโดย Rubymine


185

ฉันใช้ Rubymine สำหรับโครงการ Rails บ่อยครั้งที่ Rubymine ทำการเปลี่ยนแปลง.idea/*ไฟล์ที่ฉันไม่สนใจ แต่มันทำให้ฉันไม่สามารถเช็คสาขาใหม่และทำให้เวอร์ชันของฉัน.idea/แตกต่างจากเพื่อนร่วมงานของฉัน

เราได้เพิ่มแล้ว.idea/ไปแต่มันก็ช่วยให้การติดตามการเปลี่ยนแปลงใน.gitignore .ideaฉันจะทำสิ่งนี้ในวิธีที่ถูกต้องได้อย่างไร?

ด้านล่างเป็นข้อความแสดงข้อผิดพลาดทั่วไปที่ฉันได้รับ:

error: Your local changes to the following files would be overwritten by checkout:
    .idea/workspace.xml

9
บางทีคุณมาแล้ว คุณต้องคอมไพล์ rm; เพิ่มเพื่อละเว้น
Kaan Yy

คำตอบ:


257

ใช้.idea/งานได้ดีสำหรับฉัน


5
สวัสดี! อยากบอกเรามากกว่านี้ว่ามันเป็นยังไง ... มันไม่ทำงานให้ฉันเหรอ? :(
YoniGeek

Git ทำงานแตกต่างไปจากนี้เล็กน้อย ดูหน้าgit manสำหรับข้อมูลเพิ่มเติม
Steve Benner

4
@BirdBird ฉันเพิ่งลอง - ใช้ได้กับโฟลเดอร์ย่อยด้วย นอกจากนี้คุณอาจต้องการลอง**/.idea/
the_joric

22
ส่วนหนึ่งของปัญหาคือถ้าคุณจัดแสดงเนื้อหาของคุณแล้ว. gitignore จะไม่ช่วยคุณ
Dan Rosenstark

12
แต่ถ้าคุณต้องการละเว้นไฟล์ / โฟลเดอร์หลังจากที่คุณเพิ่ม / ตรวจสอบแล้วคุณต้องลบมันด้วย "git rm -r - แคชเว็บ / อัพโหลด" (ในตัวอย่างนี้ฉันเพิ่มโฟลเดอร์ "web / uploads" ไปยัง. gigignore ไฟล์หลังจากเช็คอินแล้ว) แหล่งที่มา: help.github.com/articles/ignoring-files
Dung

311

ลองgit rm -r --cached .ideaใน terminal ของคุณ มันปิดการติดตามการเปลี่ยนแปลง


2
ขอบคุณมาก! แต่ทำไมมันอยู่ในแคชหลังจากที่ฉันเช็คเอาต์ที่เก็บว่างเปล่าทั้งหมด?
Budi

1
ขอบคุณมีประโยชน์มาก ใช้สิ่งนี้เพื่อลบไฟล์จากนั้นเพิ่ม. aaa ไปยัง gitignore และใช้งานได้ดี ขอบคุณมาก!
ทิมอาร์

ไม่สามารถใช้งานได้จริงเมื่อโฟลเดอร์. aide อยู่ภายใต้การติดตามแล้ว
ACV

ดังนั้นหากโฟลเดอร์ที่ถูกติดตามอยู่ใน Git การเพิ่ม. aide / to. gitignore จะไม่หยุด Git จากการติดตาม คุณจะต้องทำ "git rm -r --cached .idea" ก่อนจากนั้นจึงเพิ่ม. aa / ลงใน. gitignore ของคุณ นี้จะดีสำหรับฉัน
Sam003

41

โปรดทราบว่า JetBrains แนะนำ "ถ้าคุณตัดสินใจที่จะแบ่งปันไฟล์โครงการ IDE กับนักพัฒนาอื่น ๆ ... " การติดตาม.idea/*ไฟล์ทั้งหมดยกเว้นสามไฟล์ต่อไปนี้ :

  • workspace.xml
  • usage.statistics.xml
  • tasks.xml

ดังนั้นเพื่อทำตามคำแนะนำของพวกเขาคุณจะเพิ่ม 3 ไฟล์เหล่านั้นใน. gitignore ของคุณ


ที่มา:

หากคุณตัดสินใจที่จะแชร์ไฟล์โครงการ IDE กับนักพัฒนาอื่น ๆ ให้ปฏิบัติตามแนวทางเหล่านี้:
...
นี่คือสิ่งที่คุณต้องการแบ่งปัน:

  • ไฟล์ทั้งหมดภายใต้ไดเร็กทอรี .idea ในรูทโปรเจ็กต์ยกเว้นไฟล์workspace.xml , use.statistics.xmlและtask.xmlซึ่งเก็บการตั้งค่าเฉพาะผู้ใช้
  • ...

วิธีจัดการโครงการภายใต้ระบบควบคุมเวอร์ชัน ( เก็บถาวร )

มีหมายเหตุเพิ่มเติมบางอย่างในหน้านั้นเกี่ยวกับไฟล์อื่น ๆ ที่จะนำมาใช้สำหรับ gitignore IDEs และ builds เฉพาะ


10
ในขณะที่ฉันเห็นด้วยกับคำตอบนี้ [+1 ถูกต้อง] ฉันคิดว่าทีมที่ไม่เข้มงวดกับ IDEs และสามารถหนีไปได้โดยไม่ตรวจสอบใน.ideaโฟลเดอร์เลย ... ในนั้นมักขัดแย้งกันด้วยเหตุผลที่ไม่สมเหตุสมผล
JaKXz

6
เป็นวิธีปฏิบัติที่ไม่ดีในการส่งไฟล์เฉพาะ IDE เหตุผลหนึ่งคือนักพัฒนาที่แตกต่างกันอาจใช้เครื่องมือที่แตกต่างกัน อีกไฟล์หนึ่งคือไฟล์เหล่านั้นอาจมีการกำหนดค่าเฉพาะของผู้ใช้ซึ่งจะเกิดความขัดแย้งตลอดเวลา
Jordan Silva

2
คำแนะนำนี้เป็นการปฏิบัติที่ไม่ดี การใช้มันในโครงการเป็นวิธีที่ดีที่สุดในไฟล์เวอร์ชั่นที่มีข้อมูลเฉพาะของผู้ใช้เช่นพา ธ สัมบูรณ์ ... แค่มองเข้าไปใน.ideaโฟลเดอร์ของคุณก่อนที่จะติดตาม reco นี้
JBE

1
ในขณะที่ฉันจะยอมรับว่าการยอมรับไฟล์ IDE แบบสุ่มสี่สุ่มห้านั้นเป็นความคิดที่ไม่ดีอยู่เสมอเพราะการยอมรับสิ่งใดก็ตามเป็นความคิดที่ไม่ดี ในบางสถานการณ์การแชร์ไฟล์ IDE อาจทำงานได้ดี แนวคิดคล้ายกับการแชร์ไฟล์ orchestration ของ container ซึ่งเป็นวิธีหนึ่งในการเรียกใช้แอปพลิเคชัน เช่นเดียวกับไฟล์ IDE เป็นวิธีหนึ่งในการพัฒนาโครงการและสามารถมีคำจำกัดความที่มีประโยชน์เช่นวิธีการเรียกใช้การทดสอบหน่วยหรือคำสั่งการครอบคลุมรหัสห่ออย่างเรียบร้อยสำหรับ IDE ที่เฉพาะเจาะจง .ideaไฟล์ส่วนใหญ่(ใน PyCharm เป็นอย่างน้อย) ได้รับการออกแบบให้แชร์
ซามูเอลฮาร์เมอร์

26

เพิ่ม.idea/*ลงในรายการยกเว้นของคุณเพื่อป้องกันการติดตามไฟล์. ไดเร็กตอรี่ไดเรกทอรีและทรัพยากรย่อยทั้งหมด


24

หากไฟล์ถูกติดตามโดย Git การเพิ่มไฟล์ไปยัง. gitignore จะไม่หยุด Git จากการติดตาม คุณจะต้องทำไฟล์ที่ละเมิดก่อนแล้วเพิ่มไปที่. gitignore ของคุณ

การเพิ่ม. aa / ควรใช้งานได้


นี่ควรเป็นคำตอบที่ครอบคลุมมากขึ้น!
Sam003

21

ใช้git rm -r --cached .ideaใน terminal ของคุณทำงานได้ดีสำหรับฉัน มันปิดการติดตามการเปลี่ยนแปลงและยกเลิกการตั้งค่าจำนวนไฟล์ภายใต้โฟลเดอร์ rubymine (ความคิด /) ที่ฉันสามารถเพิ่มและกระทำการ git ได้ดังนั้นจึงลบการเปรียบเทียบและอนุญาตให้การตั้งค่า gitignore .idea/ทำงาน


13

ปิด PHP Storm ในเทอร์มินัลไปที่ประเภทโฟลเดอร์โครงการ

git rm -rf .idea; git commit -m "delete .idea"; git push;

จากนั้นไปที่โฟลเดอร์โครงการและลบโฟลเดอร์ .idea

sudo rm -r .idea/

เริ่ม PhpStorm และทำเสร็จแล้ว


12

ใน rubymine gui จะมีรายการเพิกเฉย (การควบคุมการตั้งค่า / เวอร์ชั่น) อาจลองปิดการใช้งานที่นั่น ฉันได้รับคำแนะนำจากพวกผู้สนับสนุน

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



8

แม้ว่าจะไม่นานเกินไปที่ฉันได้เปลี่ยนมาเป็น Rubymine แต่ฉันพบว่ามันยากที่จะเพิกเฉยต่อไฟล์. taa ของ Rubymine ที่มุ่งมั่นที่จะคอมไพล์

นี่คือวิธีที่ฉันแก้ไขมัน

หากคุณยังไม่ได้ทำการแสดงละคร / กระทำใด ๆ หรือเพียงแค่หมุนโครงการใหม่ในเหมืองทับทิมจากนั้นก็ทำสิ่งนี้

ตัวเลือกที่ 1

เพิ่มบรรทัดด้านล่างลงในไฟล์. gitignore ซึ่งโดยปกติแล้วจะอยู่ที่รูทของที่เก็บของคุณ

# Ignore .idea files
.idea/

สิ่งนี้จะช่วยให้มั่นใจว่าไฟล์. aa ทั้งหมดจะถูกละเว้นจากการติดตามโดย git แม้ว่าไฟล์เหล่านั้นจะยังคงอยู่ในโฟลเดอร์โครงการของคุณ

ตัวเลือก 2

หากคุณได้ทำ staging / commit แล้วหรือเพิ่งเปิดโปรเจคที่มีอยู่ในเหมือง Ruby ก็ทำได้ง่ายๆ

เรียกใช้รหัสใน terminal / บรรทัดคำสั่งของคุณ

git rm -r --cached .idea

ไฟล์นี้จะถูกลบไปแล้วที่ติดตามแล้ว. git

ถัดไปรวม. .aa / ถึงไฟล์. gitignore ซึ่งโดยปกติแล้วจะอยู่ที่รูทของที่เก็บของคุณ

# Ignore .idea files
.idea/

สิ่งนี้จะช่วยให้มั่นใจว่าไฟล์. aa ทั้งหมดจะถูกละเว้นจากการติดตามโดย git แม้ว่าไฟล์เหล่านั้นจะยังคงอยู่ในโฟลเดอร์โครงการของคุณ

ตัวเลือก 3

หากคุณได้ทำ staging / commit หรือคุณเพิ่งเปิดโครงการที่มีอยู่ในเหมือง Ruby และต้องการลบไฟล์. ai ภายในเครื่องและคอมไพล์ทั้งหมด

เรียกใช้รหัสใน terminal / บรรทัดคำสั่งของคุณ

git rm -r --cached .idea

ไฟล์นี้จะถูกลบไปแล้วที่ติดตามแล้ว. git

เรียกใช้รหัสใน terminal / บรรทัดคำสั่งของคุณ

rm -r .idea

สิ่งนี้จะลบไฟล์. aia ทั้งหมดรวมถึงโฟลเดอร์ในเครื่อง

ถัดไปรวม. .aa / ถึงไฟล์. gitignore ซึ่งโดยปกติแล้วจะอยู่ที่รูทของที่เก็บของคุณ

# Ignore .idea files
.idea/

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

นั่นคือทั้งหมดที่

ฉันหวังว่านี่จะช่วยได้


4

สำหรับฉันมีทางออกเดียวที่จะลบโฟลเดอร์. aaia กว่าไฟล์. gitignore ด้วย ".idea" และใช้ IDE อีกครั้ง


สวัสดี! ฉันลองสิ่งนี้! แต่ IDE ไม่สามารถโหลดไฟล์ของฉันอีกครั้ง ... คุณทำเช่นนี้ได้อย่างไร? ขอบคุณ!
YoniGeek

4

ฉันขอแนะนำให้อ่านหน้า man gitเพื่อทำความเข้าใจวิธีการละเลยงานและในอนาคตคุณจะขอบคุณฉัน;)

เกี่ยวข้องกับปัญหาของคุณ:

Two consecutive asterisks ("**") in patterns matched against full pathname may have special meaning:

A leading "**" followed by a slash means match in all directories. For example, "**/foo" matches file or directory "foo" anywhere, the same     as pattern "foo". "**/foo/bar" matches file or directory "bar" anywhere that is directly under directory "foo".

A trailing "/**" matches everything inside. For example, "abc/**" matches all files inside directory "abc", relative to the location of the .    gitignore file, with infinite depth.

A slash followed by two consecutive asterisks then a slash matches zero or more directories. For example, "a/**/b" matches "a/b", "a/x/b",     "a/x/y/b" and so on.

Other consecutive asterisks are considered invalid.

4

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

ใช้ลิงค์นี้สำหรับโปรแกรม jetbrains ส่วนใหญ่ ( intelij , phpstorm ... ) ไฟล์ jetbrains .gitignore

[แก้ไข]

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

# Created by https://www.gitignore.io

### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm

*.iml

## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:

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

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

# Gradle:
# .idea/gradle.xml
# .idea/libraries

# Mongo Explorer plugin:
# .idea/mongoSettings.xml

## File-based project format:
*.ipr
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties

รหัสที่สร้างก็มีความเห็นที่ดีเช่นกัน หวังว่ามันจะช่วย:)


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

@Himanshu ลิงค์นี้เป็นเครื่องมือค้นหาไฟล์ gitignore คุณแนะนำสิ่งที่ควรคัดลอกจากมันลงในโพสต์?
Dan D.

4

ฉันพยายามที่จะเพิ่มไฟล์เหล่านั้นในของฉัน.gitignoreและมันก็ไร้ประโยชน์ ...

อย่างไรก็ตามอย่างที่Petr Syrovกล่าวว่าคุณสามารถใช้git rm -r --cached .ideaเข้ากับเทอร์มินัลของคุณและไฟล์เหล่านั้นจะไม่เป็นปัญหาอีกต่อไป




1

ใช้ปลั๊กอิน . ignore : https://plugins.jetbrains.com/plugin/7495--ignore

มันจัดการเส้นทาง / รูปแบบมากมายสำหรับคุณโดยอัตโนมัติและยังมีคุณสมบัติพิเศษที่มีประโยชน์มากมาย มันเข้ากันได้กับ:

  • IntelliJ IDEA
  • PhpStorm
  • WebStorm
  • PyCharm
  • RubyMine
  • AppCode
  • CLion
  • Goland
  • DataGrip
  • ผู้ขี่
  • MPS
  • Android Studio

0

หากคุณได้กระทำการเริ่มต้นแล้วและคุณมีไฟล์. aaa ปรากฏขึ้นเป็นไฟล์ใหม่ในคอมไพล์คุณจะต้องลบไฟล์ก่อนแล้วจึงคอมมิท ขั้นตอนต่อไปนี้จะทำเคล็ดลับ

 1. git rm --cached -r .idea/
 2. Add .idea/ to **.git/info/exclude** or **.gitignore**
 3. git commit -m 'ignore .idea/ files'

มีการอธิบายรายละเอียดในลิงก์นี้ที่นี่: https://devconnected.com/how-to-clear-git-cache/

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