2011-10-28 17 views
2

:私はXcodeで働いているGitリポジトリから '除外された'ファイルを削除するにはどうしたらいいですか?私がやっている何

、とはありませんそのずっと前にGitを使い始めました。

通常通り、私はGitデータベースに含めたくないファイルがあります。これはXcodeの設定と関係があります。私はすでにGitリポジトリをしばらく使用していますが、問題を作成しているときにこれらの 'エディタ'ファイルを削除したいと考えています。私はそれをやっている方法


これを行うための適切な方法は、.gitignoreを使用するには、明らかにないです。むしろ.git/info/excludeを使用することです。 Xcodeで新規プロジェクトを作成し、「Gitリポジトリを使用する」オプションを選択すると、私はこのデフォルト設定は、次のファイルを除外/ .git /情報であることを知ることができました:

.DS_Store

UserInterface.xcuserstate

だから私は、これは私が働いているプロジェクトのために同じGitの場所にファイルをオーバー除外コピーされ、大丈夫のようです。うまくいかない何


...除き:もちろん

ファイルは手動の介入なしに私の現在のプロジェクトから/人跡未踏削除されません。

git rm --cached .DS_Store 
git rm --cached UserInterface.xcuserstate 

しかし、これらのファイルは間違いなくある、と私はすべての私のレポブランチをコミットする行けば:だから、私はそこには、このようなファイルがありません仕事をしません、以下を試してみましたと私に語ってきましたユーザーインターフェイスファイルの種類もパーティに参加したい。


質問:だから、

、ファイルを '除外' は実際には何をしているのですか?除外ファイルを展開したり、すべてのrepoブランチに簡単に適用する方法はありますか?

もしそうでなければ、Xcodeからgit repoを作成したのと同じ状態に私のプロジェクトをどのようにして得ることができますか?

+0

なぜ '.gitignore'がファイルを除外する方法が間違っていると思いますか?私はいつも問題なく使ってきました。また、私は一般的に.gitディレクトリから離れようとします。通常、gitでより良い方法を実現します。 –

+0

Xcodeがgit reposを作成する方法は.gitignoreを使用しません。除外ファイルがより正確である理由については、http://help.github.com/ignore-files/の一番下を参照してください。 –

+0

ええ、私はちょうどそれを見つけました.gitignoreを使うのは間違いではありません...これらのファイルを無視するのに最適ではありません...私は主に私のプロジェクトにvimを使用しています。エディタファイルを無視する必要があり、私は除外ファイルを認識しませんでした。 –

答えて

2

引用した最初のgit rm --cachedコマンドが失敗する理由の1つは、.DS_Storeがディレクトリであるということです。試してください:

git rm -r --cached .DS_Store 

...代わりにしてください。 git ls-filesには、そのディレクトリ内のファイルが実際にリポジトリ内で追跡されているかどうかを確認することもできます。それがなければ、それはあなたにエラーを説明するでしょう。これらのファイルの大文字と小文字が正確に一致することを確認してください。

(これらは一般的に有用な除外ルールですが、これは偶然に.gitignoreに追加されます。)

あなたの他の質問に答えるために:だから

を、 '除外' ファイルは、実際には何をしているのですか?除外ファイルを展開したり、すべてのrepoブランチに簡単に適用する方法はありますか?

ファイルがすでにリポジトリ内で追跡されている場合、無視/除外されているかどうかにかかわらず、手動でファイルをステージングする必要があります。基本的には除外ルールを追加できるさまざまな場所はすべてthe same syntax and semanticsです。これらのルールの優先順位は、そのドキュメントにも記載されていますが、基本的には次のとおりです。

  • コマンドラインで指定された除外ルールが最も優先されます。
  • .gitignoreファイル。現在のディレクトリから最上位に移動します。
  • 次に、.git/info/excludeが使用されます。
  • 最後に、最も低い優先順位のルールは、configオプションcore.excludesfileで指定されたファイル内にある可能性があります。
関連する問題