Xcode 4プロジェクトのバージョン管理にGitを使用しています。 ProjectFolder.xcodeproj/project.xcworkspace/xcuserdata/myUserName.xcuserdatad/UserInterfaceState.xcuserstate
を明示的に.gitignore
に追加しましたが、Gitはそれを無視しません。これがなぜそうなのでしょうか?
Gitはおそらく既にファイルを追跡しています。
gitignore docs から:
現在追跡されているファイルの追跡を停止するには、git rm --cachedを使用します。
これを使用して、[project]
と[username]
をあなたの情報に置き換えます:
git rm --cached [project].xcodeproj/project.xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate
git commit -m "Removed file that shouldn't be tracked"
または、 -a
にgit commit
オプションを使用して、変更または削除されたすべてのファイルを追加できます。
Gitからファイルを削除すると、.gitignore
が尊重されます。
無視されたファイルが追跡されていないリストに表示され続ける場合、git clean -f -dを使用してクリアできます物事アップ。
git rm --cached YourProjectFolderName。xcodeproj/project.xcworkspace/xcuserdata/yourUserName。xcuserdatad/UserInterfaceState.xcuserstate
git commit -m「追跡すべきではないファイルを削除しました」
git clean -f -d
すべての回答は素晴らしいですが、ここではすべてのユーザーで削除するものがあります異なるMac(自宅とオフィス)
git rm --cache */UserInterfaceState.xcuserstate
git commit -m "Never see you again, UserInterfaceState"
友人にこの素晴らしいサイトを見せてもらいました https://www.gitignore.io/ 。選択したIDEまたはその他のオプションを入力すると、有用な無視で構成されるgitignore
ファイルが自動的に生成されます。その1つはxcuserstate
です。ダウンロードする前にgitignore
ファイルをプレビューできます。
「git clean -f -d」だけでうまくいきました!
以下は、git履歴から問題のファイルを再帰的に削除する方法の非常に良い説明です。 http://help.github.com/remove-sensitive-data/
非常に便利です。さもないと、ツールは最初にチェックされるべきではない巨大なファイルの差分を表示しようとするときに「ハング」する傾向があります...
最大のものを取り除くためにできることは(要するに)以下のとおりです。
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
私にとってはとてもうまくいった:)
私にとっては何も機能しませんでしたが、これは
この行をgitignoreに追加してください
*.xcuserdata
これは私のために働く
ターミナルからプロジェクトファイルproject.xcworkspace
を含むフォルダーを開きます。
次のコマンドを書いてください:git rm --cached *xcuserstate
これにより、ファイルが削除されます。
Xcode 8.3.3の場合、上記のコードを試してみたところ、この場合、コマンドを次のように変更する必要があります。
最初に、次を使用して.gitignoreファイルを作成できます。
touch .gitignore
その後、このコマンドを使用してすべてのuserInterfaceファイルを削除し、このコマンドを使用して.gitignoreファイルを尊重します。
git rm --cached [project].xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate
git commit -m "Removed file that shouldn't be tracked"