Câu trả lời:
Git có lẽ đã theo dõi các tập tin.
Từ các tài liệu gitignore :
Để dừng theo dõi một tệp hiện đang được theo dõi, hãy sử dụng git rm --cached .
Sử dụng cái này, thay thế [project]
và [username]
với thông tin của bạn:
git rm --cached [project].xcodeproj/project.xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate
git commit -m "Removed file that shouldn't be tracked"
Ngoài ra, bạn có thể sử dụng -a
tùy chọn để git commit
thêm tất cả các tệp đã được sửa đổi hoặc xóa.
Khi bạn đã xóa tệp khỏi git, nó sẽ tôn trọng bạn .gitignore
.
Trong trường hợp tệp bị bỏ qua tiếp tục hiển thị trong danh sách không bị theo dõi, bạn có thể sử dụng git clean -f -d
để xóa mọi thứ.
1.
git rm --cached {YourProjectFolderName}.xcodeproj/project.xcworkspace/xcuserdata/{yourUserName}.xcuserdatad/UserInterfaceState.xcuserstate
2.
git commit -m "Removed file that shouldn't be tracked"
3. CẢNH BÁO thử lần đầu tiên git clean -f -d --dry-run
, nếu không bạn có thể mất các thay đổi không được cam kết.
Sau đó:
git clean -f -d
git clean -f -d --dry-run
để xem điều gì xảy ra
git clean -f -d
làm gì?
git clean -f -d
nếu bạn có các thay đổi tệp không được cam kết! Tôi đã sử dụng nó và nó đã loại bỏ các tập tin mới tạo của tôi với nội dung đã được tạo! :) Vì vậy, trước tiên hãy cam kết và sau đó dọn dẹp
Tất cả Câu trả lời là tuyệt vời nhưng đây là câu trả lời sẽ xóa cho mọi người dùng nếu bạn làm việc ở các máy Mac khác nhau (Gia đình và văn phòng)
git rm --cache */UserInterfaceState.xcuserstate
git commit -m "Never see you again, UserInterfaceState"
Có một người bạn chỉ cho tôi trang web tuyệt vời này https://www.gitignore.io/ . Nhập IDE bạn chọn hoặc các tùy chọn khác và nó sẽ tự động tạo một gitignore
tệp bao gồm các bỏ qua hữu ích, một trong số đó là xcuserstate
. Bạn có thể xem trước gitignore
tập tin trước khi tải xuống.
Trong trường hợp tệp tiếp tục hiển thị ngay cả sau khi thực hiện mọi thứ được đề cập ở đây, hãy đảm bảo rằng hộp kiểm này trong cài đặt Xcode không được chọn:
Dưới đây là một số bản demo & cắt ngắn nếu bạn sử dụng GitHub, các ý tưởng cơ bản đều giống nhau.
1. Mở terminal như thế này
2. Dán lệnh bên dưới vào thiết bị đầu cuối theo sau là khoảng trắng và sau đó dán đường dẫn của tệp .xcuserstate đơn giản như thế này
3. Hãy chắc chắn rằng bạn đã bỏ qua git chính xác và sau đó cam kết mã :)
Dưới đây là một lời giải thích rất hay về cách xóa các tệp trong câu hỏi theo cách đệ quy khỏi lịch sử git của bạn: http://help.github.com/remove-sensitive-data/
Rất hữu ích, vì nếu không các công cụ có xu hướng 'treo' trong khi cố gắng hiển thị độ lệch trên các tệp khổng lồ không nên được kiểm tra ở vị trí đầu tiên ...
Dưới đây là những gì bạn có thể làm (nói ngắn gọn) để loại bỏ những thứ lớn nhất:
cd YourProject
git filter-branch --index-filter 'git rm --cached --ignore-unmatch -r YourProject.xcodeproj/project.xcworkspace' HEAD
# see what you want to do with your remote here...
# you can: git push origin master --force
# or you can delete it and push a fresh new one from your cleaned-up local...
rm -rf .git/refs/original
git gc --prune=now
git gc --aggressive --prune=now
Làm việc rất tốt cho tôi :)
Đối với tôi không có gì làm việc, nhưng điều này
thêm dòng này vào gitignore của bạn
*.xcuserdata
Điều này làm việc cho tôi
Mở thư mục chứa tệp dự án project.xcworkspace
từ thiết bị đầu cuối.
Viết lệnh này: git rm --cached *xcuserstate
Điều này sẽ loại bỏ các tập tin.
Đối với xcode 8.3.3 tôi vừa kiểm tra thử đoạn mã trên và quan sát rằng, bây giờ trong casewe này phải thay đổi các lệnh để như thế này
trước tiên, bạn có thể tạo tệp .gitignore bằng cách sử dụng
touch .gitignore
sau đó bạn có thể xóa tất cả tệp userInterface bằng cách sử dụng lệnh này và bằng cách sử dụng lệnh này, nó sẽ tôn trọng tệp .gitignore của bạn.
git rm --cached [project].xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate
git commit -m "Removed file that shouldn't be tracked"