gpt4 book ai didi

windows - 来自 Win10 和 Ubuntu WSL 的 Git 提交 - 如何处理文件执行模式更改?

转载 作者:行者123 更新时间:2023-12-04 18:43:25 25 4
gpt4 key购买 nike

我正在 Ubuntu WSL 和 Windows 10 中开发一个项目。我希望能够通过 sublime/...在 Windows 10 文件系统中编辑文件,并通过 VScode/...在 Ubuntu WSL 中编辑文件并将更改推送到偏僻的。这样做时我注意到了两个问题:

  • 当我在 Ubuntu WSL 上通过 VSCode 进行编辑时,文件模式更改为 755,而当我在 Windows 上编辑时,文件模式更改为 644。因此,每次提交都有数千次更改 - 仅用于文件可执行位更改。

  • 我应该怎么做才能使跨 Windows 文件系统和 WSL 文件系统的编辑和推送更改保持相同的模式?
    现在,每次通过 Windows 进行更改时,我都在尝试使用以下命令。 git add . --chmod=+x(来源: How to create file execute mode permissions in Git on Windows?)
    有没有更好的方法来处理这种情况?
  • 有时,git diff 显示整个文件被删除(即所有行)并再次添加所有行。类似:
  • - print('hello')
    + print('hello')
    我不确定为什么会这样。
    我仍在学习 Git,想知道我所做的是否正确,或者是否有更好的方法来处理从不同文件系统编辑相同的 repo。

    最佳答案

    如果您将存储库存储在 Windows 文件系统上,那么它不会保留 Unix 可执行位,您需要依赖 --chmod标记以相应地设置这些权限。如果您仅将其存储在 Linux 文件系统上并使用 \\$wsl Windows 下的路径符号,那么如果(a)您坚持使用 Linux Git 二进制文件并且(b)您的编辑器写入现有文件而不是写入一侧并重命名旧文件,则权限将被保留。
    您看到所有行都被修改的原因是因为您的一位编辑器(可能是 Windows 编辑器)正在编写 Windows 行尾 (CRLF),而另一个正在编写 Unix 行尾 (LF)。如果您在存储库中创建一个名为 .gitattributes 的文件与行 * text=auto ,那么这将导致存储库中的所有文本文件在提交时使用 LF 行结尾进行规范化,这通常是您想要的。

    关于windows - 来自 Win10 和 Ubuntu WSL 的 Git 提交 - 如何处理文件执行模式更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65618894/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com