Visual Studio 代码中的 Git 表示即使没有更改文件也会被修改

Sha*_*ggy 9 git salesforce visual-studio-code

我正在使用 Visual Studio Code 进行我的销售队伍开发。我在将 Git 作为存储库时遇到了一些问题。当我右键单击 package.xml 并说 Retrieve Source From Org 时,它正在从 Org 获取所有文件。

问题是 git 扩展名显示文件已在服务器上修改,即使我在本地有一个示例文件。即使没有更改,我也不想一次又一次地将所有文件推送到我的 git 存储库。

在此处输入图片说明

知道为什么会发生这种情况以及如何避免吗?

更新:我做了 git diff 并且它提供了正确的输出。它只显示被修改的文件更改。在这种情况下只有五个。

Sha*_*ggy 29

我能够通过执行以下命令来解决它

git config --global core.autocrlf false
Run Code Online (Sandbox Code Playgroud)

文档:https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration# :~:text=with%20these%20issues.-,core.autocrlf,-If%20you%E2% 80%99re%20编程

  • 有趣的是,我必须将 core.autocrlf 设置为 true 才能使我的“修改”文件消失。我正在使用在 Windows 上签出的 git 存储库,该存储库在 Ubuntu 中运行的 VS Code 开发容器中打开。 (10认同)

小智 6

如果我们使用更改权限,那么我也遇到了这种行为。为了克服这个问题,您可以使用以下命令。

git config core.filemode false  
Run Code Online (Sandbox Code Playgroud)

如果你想申请全球。

git config --global core.filemode false
Run Code Online (Sandbox Code Playgroud)

  • 如果您在 Linux 文件系统和 Windows 文件系统之间切换,例如,如果您从在 CMD 中使用 VScode 切换到使用 WSL 的 VScode,就会发生这种情况。 (7认同)
  • 这对我有用,但后果是什么?这是否意味着我提交的 .sh 文件不会被其他人拉为可执行文件? (5认同)
  • 我在 WSL 和 Windows 之间切换时遇到了这个问题。安装远程 WSL 扩展解决了这个问题。 (5认同)
  • 如果您想了解其作用,请查看 /sf/answers/4853875771/。@DanielKaplan 好心地问了他的上述问题并得到了彻底的答案。 (3认同)

小智 6

如果您运行git diff并看到如下输出:

diff --git a/folder/file.tex b/folder/file.tex
old mode 100725
new mode 100614
Run Code Online (Sandbox Code Playgroud)

运行以下命令来修复该问题。

git config --unset core.filemode
Run Code Online (Sandbox Code Playgroud)

如果在 VS Code 中刷新源代码管理后这不起作用,也请运行以下命令。

git config --global core.filemode false
Run Code Online (Sandbox Code Playgroud)