usb-iosのgvsf(GNOME仮想ファイルシステム)、git cloneを実行すると、次のメッセージが表示されます。fatal:Could not set 'core.filemode' to 'false'

usb-iosのgvsf(GNOME仮想ファイルシステム)、git cloneを実行すると、次のメッセージが表示されます。fatal:Could not set 'core.filemode' to 'false'

USB経由でiOSデバイスをLinuxノートブックに接続しました。 Linuxシステムにはそれを指すgvfsがマウントされていて、そこ/run/user/1000/gvfs/afc:host=xxxxxxxxxx,port=3からディレクトリを変更してrsync前後に切り替えることができますが、私のラップトップ(/home/user/repo.git)にあるgitリポジトリを複製したいと思います。

git clone /home/user/repo.git

霧が出たようです。

Cloning into 'repo'...
error: chmod on /run/user/1000/gvfs/afc:host=xxxxxxxxx,port=3/com.lhy.iMarkdown/repo/.git/config.lock failed: Operation not supported
fatal: could not set 'core.filemode' to 'false'

そして、sudo git clone /home/user/repo.git与えられるでしょうfatal: could not create work tree dir 'repo': Permission denied


@torekさんの説明(https://stackoverflow.com/users/1256452/torek)のgit cloneの答えは同じ状況ですが、Sambaマウントポイントへの答えです。https://stackoverflow.com/a/50242563

git cloneがオペレーティングシステムサービスへの呼び出しを使用してファイル名を変更すると、プロセスが3番目で最後のステップで失敗したというメッセージが表示されます。


この場合、GVfsはリポジトリ(https://askubuntu.com/a/1035122)。これがsudoingが機能しない理由です。 GVfsは、マウントポイントをマウントしたユーザーのみが使用できるようにするためです。


iOSデバイスをLinuxノートブックに接続し、gitを使用してネットワーク上のローカルデバイス/ストレージに接続することは非常に便利です。誰もが動作する方法を知っていますか?/etc/fstab完全な相互作用が私が接続して使用している他のストレージポイントのように自然に感じるように設定を維持するのが最善です。 gitリポジトリの内容を前後に再同期し、gitを再生成することは意味がありません。人々は限られた環境/ボックス/デバイス/ストレージでgitを使用してこれらの問題を解決したかもしれません。

答え1

Unixでは、Gitはchmodリポジトリを複製または初期化するときと同様に、設定ファイルを設定するときにファイル権限が正しく設定されることを期待しています。この場合、使用したいファイルシステムはそれをサポートしていないため失敗します。

悪いニュースは、GitがchmodUnixのオプションのシステムコールとは見なされないため、UnixのどのバージョンのGitもこのファイルシステムのリポジトリを正常に初期化または複製できないことです。通常のUnixファイルシステムでリポジトリを複製してコピーすることで、その動作を確認できます。 Windowsドライブを使用すると、Linux用のWindowsサブシステムでは、この問題が発生するため、最終的には機能する可能性があります。この場合、iOSとGVFSが公開している機能によってはそうでない可能性があり、そうでない場合は別のアプローチを試してください。

関連情報