2014-09-18 21 views
8

Tôi đang sử dụng Git trong Android Studio trên máy OS X và tôi muốn có tệp .gitignore cá nhân ghi đè .gitignore có trong dự án (Tôi muốn tôi bỏ qua các tệp .iml). Điều này có thể được thực hiện và làm thế nào?Tôi có thể thêm tệp .gitignore cho tôi để ghi đè dự án .gitignore không?

Tôi đã cố gắng để tạo ra một tập tin .gitignore trong dir nhà của tôi với những dòng sau trong:

# Android Studio 
.*.iml 
*.iml

Và tôi đã sử dụng lệnh này để làm cho git sử dụng tập tin của tôi git config --global core.excludesfile ~/.gitignore, nhưng nó không hoạt động.

Bất kỳ ý tưởng nào?

+0

AFAIK, bạn không thể ghi đè tệp '.gitignore' (nếu có) nằm trong thư mục gốc của repo của bạn, vì nó được ưu tiên hơn mọi thứ khác, bao gồm. bất kỳ "core excludeesfile". – Jubobs

+0

Liên quan: [Bạn có thể có nhiều tệp .gitignore trong một repo đơn không?] (Http://stackoverflow.com/questions/9730486/can-you-have-multiple-gitignore-files-within-a-single-repo) –

+0

Không có nó không hoạt động, tôi không thể làm cho nó bỏ qua các tập tin .iml: ( – Neigaard

Trả lời

9

Thay vì tạo tệp .gitignore mới, bạn should use tệp .git/info/exclude để thiết lập quy tắc bỏ qua cụ thể cho bản sao của bạn của repo.

Vì vậy, về cơ bản, đi đến gốc của dự án của bạn, và chạy

cd $PROJECT_ROOT 
echo "*.iml" >> .git/info/exclude 

Lưu ý rằng các mô hình *.iml sẽ chăm sóc các tập tin của loại .*.iml là tốt, để bạn có thể làm gì với một bỏ qua quy tắc.

Ngoài ra, điều này bổ sung cho các quy tắc bỏ qua hiện tại trong .gitignore và bỏ qua các quy tắc của .gitignore sẽ vẫn được áp dụng.


Có vẻ như bạn đã theo dõi .iml file trong repo Git của bạn, vì vậy bạn có thể thử gỡ bỏ chúng từ Git sử dụng

git rm -r *.iml 
git commit -m "removed *.iml" 

Lưu ý rằng điều này sẽ untrack chúng từ kho chủ cũng một lần bạn làm một cú đẩy.

Nếu không, bạn có thể sử dụng git update-index --assume-unchanged <filename> để bỏ qua các thay đổi đối với những tệp đó cục bộ. Và sau đó, các quy tắc gitignore sẽ hoạt động tốt.

+0

Điều này có thể được sử dụng để ghi đè quy tắc '.gitignore' không? (ví dụ: ghi đè' * .jar' bằng cách sử dụng '! *. jar' trong' .git/info/exclude') –

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