2012-01-12 19 views
0

私は仕事場レベルでgit repoを持っています。 1つのリポジトリ内に複数の密接に関連するEclipseプロジェクトブランチと.metadataを使って 'workspace'レベルでgitを安全に使う方法は?

.metadataを.gitignoreに追加すると、新しいブランチとチェックアウトを作成するたびに私の.metadataファイルが失われ、すべてのプロジェクトを手動でインポートします。これは不愉快です。

バージョン管理下に.metadataファイルを保存しても安全ですか?これはマルチ・デベロッパー・プロジェクトであり、JDKのバージョンや多分将来のOSも変わるかもしれません。 (私たちは現在Ubuntuにいます)

他のIDEファイルはインストールしないでください。

ありがとう、

Chris。

+1

これは異常です:ファイルが本当に無視された場合、 'git checkout'は決してそれらを削除しませんでした。あなたは彼らが逃げ出したことから無視されたと確信していますか?または後で元のレポで削除されましたか?後者の場合、なぜ新しい支店をチェックすると消えてしまうのか説明してくれるでしょう。 – fge

+0

もう一度やり直してみましょう。 .metadataは最近になって.gitignoreに追加されたばかりなので、自分自身やgitを混乱させているかもしれません。 – fadedbee

+1

git最も確実です。あなたが最初からやり直す余裕があれば、それは最も簡単な方法です...歴史を残したい場合は、 'git filter-branch'を実行する必要があります。ハードですが、やりやすい... – fge

答えて

4

問題は、あなたが.gitignoreにこれを追加しました前に、ファイルおよび/またはディレクトリがすでにgitので追跡したということです。

  • ファイルのために、それはどんな、追跡され続けるんだろう。
  • ディレクトリには、.gitignoreに追加したときにこのディレクトリに存在するファイルも追跡されます。

これはブランチb1で人跡未踏のファイルfを持っていますが、このファイルが追跡である枝b2をチェックアウトする場合は、Gitがremorselessly fが上書きされること、とりわけ、意味します。

前の質問で説明したように、gitが "被害が終了した"後にgitを完全に無視する解決策は、git rm -r --cachedを発行してから.gitignoreに追加することだけです。しかし、これは支店で支店で行う必要があり、その間に問題が残ることになります。でも、残りの部分をコミットする前に、その最初のコミット - あなたは「ゼロから」再起動する余裕がある場合

  • 、そうとすぐに.gitignore.metadataを置く:あなたの状況を考えると

    は、次の2つの選択肢があり;

  • 余裕がない場合は、git filter-branch以外の選択肢はありません。

他のIDEで無視する他のファイルについては、IDEA:.idea*.imlしか知らない場合があります。他の人には分かりません...

関連する問題