Windows PCにArch Linuxを実行しているvirtualbox仮想マシンがあります(残念ながら、仕事用に使用する必要があります)。 Cygwinの代わりにLinux環境のWindows PCで作業するために使用します。
C:\ドライブをLinux VMと共有するVirtualbox共有フォルダを設定しましたが、フォルダのファイル権限を変更できないようです。これでgitは私のファイル権限がすべて変更されたと思うので、これは問題です。
» ll README.txt
-rwxrwx--- 1 root vboxsf 4.5K Oct 28 10:42 README.txt
» chmod 644 README.txt
» ll README.txt
-rwxrwx--- 1 root vboxsf 4.5K Oct 28 10:42 README.txt
» sudo chmod 644 README.txt
» ll README.txt
-rwxrwx--- 1 root vboxsf 4.5K Oct 28 10:42 README.txt
» git diff README.txt | cat
diff --git a/README.txt b/README.txt
old mode 100644
new mode 100755
どうすれば解決できますか?
このフォルダは、VirtualBox Managerの自動マウントを使用してWindowsにマウントされます。
答え1
ファイルシステム(たとえば、Windows C:ドライブ、NTFSである可能性が高い)でマッピングされているホストがLinux gitが期待するフルレンジの許可ビットをサポートする可能性が低いため、この方法は機能しません。
同様の状況で、Samba経由でLinuxディレクトリをエクスポートし、WindowsとLinuxで問題なく使用しました。ただし、これは仮想マシンが実行されていない間はデータにアクセスできないという欠点があります。
答え2
Linuxでは、ホストにマウントされたファイルシステムは外部システムにマウントされるため、システムのファイル権限を制御できません。コントロールはホストに属します。したがって、ドライブが制御できる部分の権限を調整する必要があります。
Virtual Boxをドキュメントフォルダのサブディレクトリにリンクしました。これにより、ホストシステムのオペレーティングシステムファイルが破損する心配なしに権限を開くことができます。