Không thể bỏ qua .idea / workspace.xml - tiếp tục bật lên


237

Sử dụng PHPStorm, tôi đang cố gắng bỏ qua workspace.xmlcái bật lên mỗi khi tôi cố gắng thực hiện một cam kết git.

Hình của tôi .gitignorenhư:

/.idea/
.idea/workspace.xml

Bởi vì tại một thời điểm, tập tin đã được cam kết, tôi cũng đã thực hiện:

git rm --cached .idea/workspace.xml và sau đó cam kết loại bỏ, đẩy đến một repo trần.

Nhưng tập tin sẽ xuất hiện sau đó khi tôi thay đổi dự án.

Bất cứ ý tưởng về những gì tôi đang thiếu?


Đã thử tất cả mọi thứ bên dưới, được thêm vào gitignore, nhưng nó vẫn tiếp tục quay trở lại, bỏ qua gitignore.
Olaf

Hình như câu hỏi này . Hãy xem thử và xem ...
Luca Ballore

Chek ra liên kết này: stackoverflow.com/questions/8156299/ . Hình như vấn đề tương tự của bạn.
Luca Ballore

Câu trả lời:


288

Tôi đã phải đối mặt với cùng một vấn đề, và nó đẩy tôi lên tường. Vấn đề cuối cùng là thư mục .idea đã được đưa vào repo trước đó và vì vậy chúng được theo dõi bởi git bất kể bạn có bỏ qua chúng hay không. Tôi muốn giới thiệu những điều sau, sau khi đóng RubyMine / IntelliJ hoặc bất kỳ IDE nào bạn đang sử dụng:

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

Sau đó, hãy chắc chắn bỏ qua .idea trong .gitignore của bạn

Mặc dù nó là đủ để bỏ qua nó trong .gitignore của kho lưu trữ, tôi sẽ đề nghị bạn bỏ qua các dotfiles IDE của bạn trên toàn cầu.

Nếu không, bạn sẽ phải thêm nó vào mỗi .gitgnore cho mỗi dự án bạn làm việc. Ngoài ra, nếu bạn cộng tác với những người khác, thì cách tốt nhất là không làm ô nhiễm .gitignore của dự án với cấu hình riêng không dành riêng cho mã nguồn của dự án.


Lệnh cuối cùng phải là "mv ../.idea_backup .idea" thay vì "git mv ../.idea_backup .idea" để tránh lỗi git
Leo Caseiro

2
Tôi phải làm git rm .ideathay vì git add .ideathực hiện công việc
Serge

Tôi cũng thay đổi addcho rmnhưng trong trường hợp của tôi, tôi đã có thêm -rcũng như để loại bỏ tất cả đệ quy. git rm -r .idea
jmendiola

2
Ồ, cảm ơn bạn!! Đã thử điều này một triệu cách khác nhau để vô ích. Đây là cách tiếp cận từng bước chính xác. Sự khác biệt chính mà tôi đã thiếu là đảm bảo IDE của tôi đã bị đóng - đừng bỏ lỡ bước đó! Câu trả lời tuyệt vời :)
Jonny Asmar

Cảm ơn! nhiều, rất nhiều thời gian dành cho việc tìm kiếm một giải pháp làm việc và đã thử Đây là cách đơn giản nhất để làm điều đó.
edepe

83

Tôi đã có vấn đề này ngay bây giờ, tôi phải làm git rm -f .idea/workspace.xml bây giờ nó dường như đã biến mất (tôi cũng phải đưa nó vào .gitignore)


7
Tôi cũng sẽ thêm, chỉ vì lợi ích chính xác, rằng Idea intellij nên được đóng lại khi thực hiện các bước này.
LoreV

29

Tôi phải:

  • xóa tệp khỏi git
  • đẩy cam kết đến tất cả các điều khiển từ xa
  • đảm bảo tất cả các ủy viên khác được cập nhật từ xa

Các lệnh

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

Các ủy viên khác nên chạy

git pull

7
Mặc dù tôi rất vui vì câu trả lời này, tôi không thể không cảm thấy rằng nó sẽ hữu ích hơn nếu bao gồm các hướng dẫn về cách thực hiện các bước (ví dụ: chỉ thị dòng lệnh).
flyace

Chek ra liên kết này: stackoverflow.com/questions/8156299/ . Trông giống hệt như vấn đề của bạn.
Luca Ballore

tắt IDE \ n git rm -f .idea / workspace.xml \ n git commit -m "xóa workspace.xml" \ n chỉnh sửa .gitignore để loại trừ workspace.xml \ n mở IDE
Srneczek

27

Trong cùng một thư mục nơi bạn thấy tệp xuất hiện, hãy làm:

  • rm .idea/workspace.xml
  • git rm -f .idea/workspace.xml (as suggested by chris vdp)
  • vi .gitignore
  • i(để chỉnh sửa), thêm .idea/workspace.xmlmột trong các dòng Esc,,:wq

Bây giờ bạn nên tốt


2
Hoặc, để thêm hàng vào .gitignore, chỉ cần gõ echo .idea/workspace.xml>>.gitignore. Bạn không cần phải mở vi cho tất cả mọi thứ. Ngoài ra, và những gì tôi sẽ làm là có một tệp .gitignore riêng trong thư mục .idea:echo workspace.xml>>.idea/.gitignore
Godsmith 16/12/14

17

Để xóa .idea/hoàn toàn khỏi git mà không ảnh hưởng đến cấu hình IDE của bạn, bạn chỉ cần làm:

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

6

Nếu bạn có nhiều dự án trong git repo của mình, .idea/workspace.xmlsẽ không khớp với bất kỳ tệp nào.

Thay vào đó, hãy làm như sau:

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

Và làm cho .gitignore của bạn trông giống như thế này:

# 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

Chỉ cần nói với git để không cho rằng nó bị thay đổi không bao giờ là vấn đề:

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

có, bạn có thể xóa các tập tin khỏi kho git. Nhưng nếu nhóm của bạn sử dụng cùng một IDE hoặc bạn là chính mình, có lẽ bạn không muốn làm điều đó. Đối với bản thân bạn, bạn muốn có một điểm khởi đầu ok để tiếp tục làm việc, cho các đồng đội của bạn.


0

Cách tôi đã làm trong Android Studio cũng dựa trên IntelliJ là như thế này. Trong hộp thoại cam kết, tôi đã hoàn nguyên thay đổi cho workspace.xml, sau đó nó được chuyển sang tệp không đảo ngược. Sau đó tôi đã xóa nó khỏi hộp thoại cam kết. Bây giờ nó sẽ không xuất hiện trong danh sách thay đổi. Lưu ý rằng gitignore của tôi đã bao gồm .idea / workspace.xml


0

Vì trong trường hợp của tôi, tôi đã thực hiện một cam kết đầu tiên của một dự án, chỉ cần xóa .git.ideacác thư mục và sau đó xác định lại git bằng cách sử dụng git initđã giúp giải quyết vấn đề. Bây giờ tôi không có .ideagì cả.


0

Vấn đề tương tự với tôi với PHPStorm

Cuối cùng tôi đã giải quyết như sau:

  • Remove .idea / thư mục
  • Di chuyển .gitignore đến cùng cấp sẽ là .idea / được tạo mới
  • Viết các tệp bạn cần bỏ qua và .idea / too. Để chắc chắn nó sẽ bị bỏ qua tôi đặt như sau:

    • .ý tưởng/
    • .ý tưởng
    • .ý tưởng/*

Tôi không biết tại sao hoạt động theo cách này, có lẽ .gitignore cần phải ở cùng cấp .idea để có thể bỏ qua thư mục này.


-1

Bỏ qua các tệp kết thúc bằng .iws, và workspace.xmltasks.xmlcác tệp trong .gitignore Reference của bạn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.