如何从 .gitignore 中列出的存储库中删除文件而不更改空格

Col*_*lin 6 git azure-devops visual-studio-2019

我已经阅读了有关如何使用 git 命令从存储库中删除忽略文件中的文件的信息:将目录添加到 .gitignore 后从远程存储库中删除

我将 Visual Studio 2019 与 Azure DevOps 中的存储库一起使用。我使用了以下步骤:

  1. 从 Git 资源管理器菜单中,“在命令提示符中打开”
  2. git rm -r --cached . 这告诉 git 停止跟踪所有内容,现在我的所有文件在“暂存更改”中显示为已删除,而在“更改”中显示为添加的文件数量较少。这看起来不错。我假设被忽略的文件不会再次添加回来,所以当我提交这些添加时,所有原本应该被忽略的文件都将在服务器上被删除。
  3. 阶段。现在看起来有问题。添加的文件显示为已修改。
  4. 当我在浏览器中查看更改时,按下按钮查看它们的外观:“仅显示前 999 个更改。单击此处加载更多”。我能看到的每个文件都有一个警告:“该文件仅在空白处有所不同”

我猜这与行尾有关,但几乎不可能查看更改。有没有办法阻止我使用这个过程时发生的空白变化?或者扭转空白变化?或者告诉 git 只检查删除?

TLDR 答案来自 VonC):

git rm -r --cached .
git config --global core.autocrlf false
git add --renormalize .
git add .
git commit
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 7

阶段。现在看起来有问题。添加的文件显示为已修改。

重复相同的过程,但在第 3 步(暂存)之前,添加:

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

这将确保有自动 eol(行尾)转换。
查看 a git add .(或git add --renormalize . 使用 Git 2.16+)后跟 a 是否git status仍然显示所有内容已修改。

OP科林确认在评论以下工作:

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