windows linux 的子系统在 git 存储库中保留文件属性
windows subsystem for linux preserve file attributes in git repo
在 windows10 和任何 linux 上的 wsl 之间共享 git 存储库时,来自 wsl 的所有文件 added/changed 都会获得 rw-rw-rw
属性,即使我在添加之前明确地做了一个 chmod ug+x file.py
。如果您在 wsl 中执行 ls -l
,则无论如何,所有文件都会以 rwxrwxrwx 列出。
在 linux 我必须在每个 pull/clone
上做一个 find . -name "*.py" -exec chmod ug+x {} \;
解决此问题的最佳方法是什么? WSL中有一些设置吗? git 钩子?
我假设您的 git 存储库位于 windows 文件系统中的某处,即 /mnt/c/path/to/git
。在这种情况下,WSL 按顺序设置所有权限
to best reflect the Windows permissions. (FAQ)
目前无法在稳定版本中更改此行为。但是随着
insider build 17063 WSL 团队通过实现 DrvFs 支持来解决这个问题,
allows setting the owner and mode of files using chmod/chown, and also
the creation of special files such as fifos, unix sockets and device
files. (Release Notes)
在 windows10 和任何 linux 上的 wsl 之间共享 git 存储库时,来自 wsl 的所有文件 added/changed 都会获得 rw-rw-rw
属性,即使我在添加之前明确地做了一个 chmod ug+x file.py
。如果您在 wsl 中执行 ls -l
,则无论如何,所有文件都会以 rwxrwxrwx 列出。
在 linux 我必须在每个 pull/clone
上做一个find . -name "*.py" -exec chmod ug+x {} \;
解决此问题的最佳方法是什么? WSL中有一些设置吗? git 钩子?
我假设您的 git 存储库位于 windows 文件系统中的某处,即 /mnt/c/path/to/git
。在这种情况下,WSL 按顺序设置所有权限
to best reflect the Windows permissions. (FAQ)
目前无法在稳定版本中更改此行为。但是随着 insider build 17063 WSL 团队通过实现 DrvFs 支持来解决这个问题,
allows setting the owner and mode of files using chmod/chown, and also the creation of special files such as fifos, unix sockets and device files. (Release Notes)