MacFusionをOSXFuse(MacFuseと同様)で使用して、サーバーをSSH経由でオフィスマシンにマウントしています。サーバー上のRails作業ディレクトリにcdすると、zshプロンプトにgit情報が表示されません。GitプルOriginを試行すると、次のエラーメッセージが表示されます。
fatal: Not a git repository (or any parent up to mount parent /Volumes)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)
サーバーにsshできることは知っていますが、zshの自動修正と履歴は失われませんか? sshを使用するために、テキストメイトやその他のソフトウェアをセットアップする必要もありませんか?また、DMGなどをインストールするためにリモートデスクトップを使用する必要はありませんか?それはすべて面倒なことに思えます。
私がやりたいことをするより良い方法はありますか?それ以外の場合、GIT_DISCOVERY_ACROSS_FILESYSTEMを有効にする方法はありますか?
PS-MacFusionはFTP経由でサーバーをマウントすることもできます-SSHよりも望ましいでしょうか?
作業ツリー内のディレクトリに移動しますか? sshマウントポイントのルートに.git dirが含まれていない場合、zshはgit情報を見つけることができません。リポジトリのルートを含むものをマウントしていることを確認してください。
GIT_DISCOVERY_ACROSS_FILESYSTEMに関しては、あなたが望むことをしません。 Gitはデフォルトでファイルシステムの境界で停止します。これをオンにすると(そして単にenv変数になります)、gitはファイルシステムの境界を越えて見続けます。ただし、ローカルマシンにsshfsマウントで部分的に構成されている作業ツリーを管理することを意図した.gitディレクトリがあることを意味するため、ほとんど役に立ちません。それはあまり意味がありません。
マウントされたvagrantマシン上のそのフォルダーにGitリポジトリーを初期化していないことに気付くまで、このエラーが発生しました。
そこでgit init
と入力すると、gitは機能しました。
Gitが設定ファイルを読み取る権限を持っていない場合にも、これを取得します。ファイルシステムを横断する必要があるまで、階層ツリー内で上に移動します。
私の問題は、複製したばかりの正しいgitディレクトリにいないことです。
最初のGoogleヒットからここに来る:
_GIT_DISCOVERY_ACROSS_FILESYSTEM=1
_をエクスポートすることで、動作と警告をオフにできます。
Herokuでは、_heroku config:set GIT_DISCOVERY_ACROSS_FILESYSTEM=1
_を実行すると警告は消えます。
これはおそらく、多くの人がそうしているように、ソースからgemをビルドし、gemspecシェルをgit
にビルドしているからでしょう。したがって、警告fatal: Not a git repository (or any of the parent directories): .git
が引き続き表示されますが、対処するのは別の日です:)
私の答えは次の複製です:-コメント GIT_DISCOVERY_ACROSS_FILESYSTEM端末とMacFusionで作業するときの問題
別のプロトコルを試してください。たとえば、git://にはファイアウォールの問題がある可能性があります。代わりにhttps:でgit cloneを試してください。