2011-07-07 4 views
0

TLリポジトリから削除せずに「人跡未踏のファイル」からディレクトリを除外; DR: を恒久的にGitリポジトリのサブディレクトリ内のすべての作業コピーの変更を除外するためにGitを取得する方法はありますから、 git statusと友人の "untracked files"と "deleted files"に表示されているを除いて、リモートオリジンから削除してください。のgit:

特定のファイルの名前を変更することは避けられないが、リポジトリ上で名前を変更しないでください。私はそれらのファイルで作業していないが、彼らは私のgit statusgit diff出力を混乱させている。 .gitignoreにそれらを追加すると、未追跡ファイルの問題は解決されますが、ファイルは削除されたままです。

好奇心のためのロングったらしい説明し、私はこの質問をしてはならないと言って人を避けるために:

私の作業コピーは、私は両方のAからアクセスしようとしている共有フォルダにありますVM(VMware FusionのUbuntu)とホスト(Mac OS X)。私はVM側でクローンをやった。 VMの共有フォルダ機能は、:&%と置き換えると、ファイルシステムに書き込まれるとすぐにファイル名が変更されるため、OS Xはそれを認識します。問題は、私の職場のGitリポジトリには、ファイル名に:のミッションクリティカルなファイルである,があります。すべてが1つの大きなディレクトリにあります。これらのファイルやディレクトリを編集したり使用したりする必要はありませんが、Mac側からGitXやコマンドラインユーティリティを使用したい場合はいつでも、削除ファイルや追跡されていないファイルとして表示されます。 VM用にすべてのRAMを使い切ることなく開発を行う)。それ以外に、Macのgitは私の他の変更を正しく見ており、このディレクトリ以外は完全に動作します。私はファイルをコロンに改名することはできません。なぜなら、OS Xではそれが違法だからです。そして、mv FWIWにしようとすると、lsが壊れます。私が言及したもののそばの他の解決策は歓迎です!ありがとう!

+0

コロンは実際にはMac OS X上のPOSIX APIを介してアクセスされるファイル名の有効な文字です。Finderはそれらをスラッシュとして表示し、端末はそれらをコロンとして表示します。私が「タッチする」と試してみると、b:私のMac OS Xコンピュータでは、「a:b」という名前のファイルがFinderに「a/b」として表示されます。あなたのVMが不必要な作業をしているような気がします。 –

+0

.gitignoreを追加した後にリポジトリをリセットしましたか? –

+0

@Dietrich:ありがとう、そうであるようです。私は、VMがその名前のコロンでファイルにアクセスできないことを意味しました。 – btown

答えて

0

git statusgit diffは、ファイル/パスが変更されていることを確認しないように、gitワークスペースのパスに「変更されていない」とマークすることができます。 「assume-unchanged」ビットがパスに設定されたら、例えば:

$ echo "default_value=Foo" > local.properties 
$ git add local.properties 
$ git commit -m'Default local.properties' 

$ git update-index --assume-unchanged local.properties 
$ echo "default_value=Bar" > local.properties 
$ git status 
# On branch master 
nothing to commit (working directory clean) 

、gitのは、もはや、ファイルへの変更を期待しないだろう、と変更を報告しません。

+0

答えをありがとう!私はもはやこのプロジェクトのために働いていた会社のために働いていないので、あなたのソリューションをテストすることはできません。それは全体のディレクトリで動作しますか?ファイルが変更されたように見えるのではなく、削除されたように見えて、 '&%'を含む別のファイルが追加されていることになります。そうであれば私は喜んで同意するでしょう。 – btown

0

UbuntuとMac OS Xの両方でファイル名にコロンを使用できるため、VMとホストシステム間でファイルを共有する方法を考えてみてください。

Linuxクライアントが壊れており、コロンをスラッシュにマップするため、スラッシュがディレクトリ区切り文字として解釈されるため、コロンで完全にアクセスできないファイルが作成されるため、AFP(Macのファイル共有プロトコル)はお勧めしません。 (はい、私はafpfsとのバグを提出しました)

私はSAMBAのどちらかをお勧めしません。私はファイル名がSAMBAに対してかなり制限されていると思われます。

しかし、NFSが動作します。 Mac OS Xでの設定は非常に簡単で、サーバプログラムはすでにインストールされていますので、エクスポートファイル(/etc/exportsman 5 exportsを参照)を編集してサーバをオンにするだけです(nfsd enable)。 Linuxから、NFS共有(mount host:/absolute/path)をマウントします。完了しました。

これをスムーズに実行するには、解決する必要があるいくつかの問題があります。理想的には、あなたのユーザーIDは両方のシステムで同じです。おそらくあなたのMacでは500、Ubuntuでは1000です。これを修正するには/etc/passwdをLinuxで編集し、その後はchown -R username /home/usernameを修正してください。 (私は逆を行い、MacのUIDを1000に変更しましたが、アカウントはログインウィンドウから消えました。C'est la vie。)exportsファイルには注意しない限り、 - NFSは暗号化されていないだけでなく、NFSサーバが信頼であることを覚えておいてください(GSSを使用しない限り、NFSv3では標準で、NFSv4では標準ですがGSSは多くの作業です)。

UbuntuからNFSをエクスポートし、Macにマウントすることもできます。 Finderで「サーバに接続」を選択し、nfs://host/absolute/pathと入力すると、ボリュームとして表示されます。