2011-09-26 3 views
10

Tôi đang cố gắng bỏ qua các thư mục xcuserdata mà xcode 4 sửa đổi và chúng tiếp tục quay trở lại mặc dù đang ở trong tệp .gitignore của tôi..gitignore sẽ không bỏ qua thư mục

tập tin .gitignore tôi như một dòng:

xcuserdata 

Tuy nhiên, ngay sau khi tôi thay đổi bất cứ điều gì UI trong xcode, tôi có được điều này:

# modified: XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata/XXXX.xcuserdatad/UserInterfaceState.xcuserstate 

Tôi đã làm một ...

git rm -r --cached XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata/XXXX.xcuserdatad/UserInterfaceState.xcuserstate 

... và đã thử ...

git rm -r --cached XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata 

... theo sau là cam kết. Tôi đã làm điều này gần 10 lần và nó sẽ không biến mất và bị bỏ qua. Nó tiếp tục trở lại.

Tôi đang làm gì sai? Có một điều rõ ràng tôi không hiểu. Các tập tin đã được thêm vào kho lưu trữ khi tôi lần đầu tiên tạo ra nó và bây giờ tôi đang cố gắng để thoát khỏi nó.

Tôi chỉ muốn tệp đó bị vô hiệu hóa hoàn toàn như chưa bao giờ được thêm vào kho lưu trữ.

Trả lời

17

Sau khi thực hiện

git rm -r --cached XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata 

kiểm git status nói với bạn rằng các tập tin trong thư mục đã bị xóa. Sau đó, sau khi cam kết của bạn, đảm bảo rằng git nói rằng không có gì để cam kết.

Thực tế là bạn đã làm điều này "10 lần" và nó đến như sửa đổi cho thấy rằng bạn không làm điều đó đúng và thư mục (thực sự các tập tin bên trong nó) vẫn được theo dõi.

Bên cạnh đó nội dung của .gitignore có vẻ ổn và tôi thậm chí đã xác nhận trên repo của tôi rằng nó hoạt động.

+0

Tôi nghĩ mình biết chuyện gì đang xảy ra. Kể từ khi tập tin đã được sửa đổi, nó vẫn chưa có một 'thêm' được thực hiện trên nó, do đó, 'rm' theo sau là 'cam kết' đã không được dùng. Không làm cho cảm giác 100%, nhưng một khi tôi đã làm nó với các tập tin trước khi xcode sửa đổi nó, tất cả mọi thứ làm việc. –

-3

hãy thử sử dụng xcuserdata/trong .gitignore bạn

+0

Đã thử rằng, không tạo sự khác biệt. –

2

Nếu bạn không thể đẩy cam kết của bạn chỉ vì UserInterfaceState.xcuserstate đã được sửa đổi, đây là một sửa chữa nhanh chóng:

  1. Mở Organizer, đi đến Repositories, sao chép của bạn của cam mã (giống như f01a2147218d by username)
  2. Mở thiết bị đầu cuối, chuyển đến thư mục dự án của bạn, làm git reset --hard f01a2147218d
  3. Đẩy cam kết!