git - 如何在wsl2网络驱动器下处理git

标签 git docker file-permissions windows-subsystem-for-linux

我刚刚将docker配置为在wsl2下运行。这项工作没有任何相关问题,我们的项目运行正常。

我在Docker之后关注了如何设置wsl2 docker环境:https://www.docker.com/blog/docker-desktop-wsl-2-best-practices/

本文建议出于性能原因,将项目文件放入linux系统中,不要通过使用/mnt下的安装来访问它。

为了访问文件,本文建议了以下选项:

  • 使用Visual Studio代码(可以直接访问wsl)
  • 使用\\wsl$\下的网络共享
  • 直接在linux
  • 内部运行IDE

    一些同事使用的IDE与Linux不兼容,也无法访问wsl。因此,我试图让他们通过网络共享访问该项目。这些同事在其IDE中使用git集成,并且对git cli不满意。

    Git运作良好,只是有一点问题。我们在存储库中有文件,这些文件具有可执行权限(+ x)​​。这些文件在Linux上具有烫发755,在Windows网络驱动器上具有644。

    由于实际的文件权限与Linux环境不同,因此git会检测到这些文件的更改。

    有没有办法将正确的文件权限暴露给Windows环境?

    您对解决问题还有其他想法吗?

    最佳答案

    要同步Linux文件权限,您需要为Linux发行版启用元数据。使用以下内容创建/etc/wsl.conf文件:

    [automount]
    root = /
    options = "metadata"
    
    root是可选的,但很有用,它可以将Windows驱动器安装到/c而不是/mnt/c,这可以节省一些击键。

    为确保此操作生效,请退出Windows,然后再次登录。

    查看documentation以获得更多详细信息,以及高级设置(如设置umask)。

    在此期间,请记住启用Git的auto CRLF handling:
    $ git config --global core.autocrlf true
    

    在WSL上使用Git时,这将为您省去很多麻烦。

    关于git - 如何在wsl2网络驱动器下处理git,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62429516/

    相关文章:

    windows - 如何使新的子文件夹固有权限(windows server 2008)

    docker检查,将字段键作为字符串返回

    apache - Docker构建后的php应用文件权限

    Windows 上的 Git Bash - 在哪里存储以及如何调用 Bash 脚本

    git - Laravel Forge 无法部署“fatal : empty ident name (for <name@name. localdomain>) 不允许

    sql-server - Bak 文件备份还原 M1 Apple 中的 Docker Azure SQL Edge

    docker - docker build输出的目的是什么?

    linux - 在linux上只创建文件权限

    公司Python包命名策略

    git - 在 git 控制下添加项目?