2016-03-02 23 views
12

Tôi gặp sự cố với tệp .iml do Android Studio tạo. Trên một đồng bộ Gradle, chúng được tái tạo nghĩa là tôi phải thực hiện một cam kết ngay cả khi không có gì thay đổi. Tôi chỉ muốn làm cho những tập tin này không bị hack.Xóa các tệp .iml khỏi GIT cho tốt

Tôi đã thử những điều sau đây.

  • Added *.iml đến file .gitignore của dự án của tôi cũng như từng module của .gitignore. Tôi đã thử cả hai *.iml**/*.iml
  • Được sử dụng git rm --cached app/app.iml khi chúng xuất hiện trong danh sách tệp được dàn dựng. Ngay cả sau khi làm điều này và cam kết nó, họ xuất hiện như dàn dựng một lần nữa sau này.
  • Như đã đề cập here tôi đã thêm nó vào tập tin Ignored trong Cài đặt dưới sự kiểm soát phiên bản
+0

/*/build/app.iml, * .iml, *. Iml. Đã cố thêm cả tệp .gitingnore? – HourGlass

Trả lời

18

Bạn có bước đi đúng đắn, nhưng bạn cần phải tổ chức chúng

  1. git rm --cached <all_your_iml_files> để loại bỏ tất cả trong số họ từ Kho lưu trữ từ xa

    Hoặc bạn có thể thực hiện một lệnh đơn giản để xóa tất cả các tệp *.iml như git ls-files | grep "\.iml$" | xargs git rm --cached

  2. Cam kết thay đổi đó bằng cách sử dụng git commit -m "msg" và sau đó, bạn có thể xem tất cả các tệp *.iml của mình dưới dạng tệp không được theo dõi.

  3. Thêm *.iml vào số .gitignore và cam kết trong một cam kết riêng biệt hoặc trong cùng cam kết trước đó.
+2

Tôi đã làm điều này nhiều lần. Trong thực tế, tôi làm điều này mọi lúc chúng xuất hiện trở lại nhưng chúng luôn được tổ chức lại – StuStirling

+0

Tôi vừa thử các bước trên thiết bị đầu cuối của mình và chúng đang hoạt động. Vấn đề liên quan đến IDE? –

+0

Tôi tin rằng khi 'gradle' chạy đồng bộ, nó sẽ tái tạo các tệp' .iml' và sắp xếp chúng trong GIT bất kể bước nào tôi đã thực hiện để ngăn chặn nó – StuStirling

0

cd vào thư mục dự án, git checkout và kéo chi nhánh chủ

cd /home/your_user/project_directory 
git checkout master 
git pull origin master 

chỉnh sửa .gitignore tập tin để chèn **/*.iml

git rm --cached **/*.iml 
git commit -a -m "rm all *.iml, update .gitignore" 
git push origin master 

Tôi đã làm việc trên một dự án git Java maven & sử dụng Idea IDE và có vẻ như thêm * .iml vào nhiều thư mục con.

Cú pháp glob **/*.iml sẽ bao gồm tất cả các tệp iml trong tất cả các thư mục trong thư mục làm việc hiện tại.

Các vấn đề liên quan