如何在不更改空格的情况下从 .gitignore 中列出的存储库中删除文件
How to remove files from repository listed in .gitignore without changing whitespace
我在此处阅读了有关如何使用 git 命令从存储库中删除忽略文件中的文件的信息:Remove directory from remote repository after adding them to .gitignore。
我正在使用 Visual studio 2019 和 Azure DevOps 中的存储库。我使用了这些步骤:
- 从 Git 资源管理器菜单中,“在命令提示符中打开”
git rm -r --cached .
这告诉 git 停止跟踪所有内容,现在我的所有文件都在“暂存更改”中显示为已删除,而少量文件在“更改”中显示为已添加。这看起来不错。我假设被忽略的文件不会再次添加回来,所以当我提交这些添加时,所有应该首先被忽略的文件都将在服务器上被删除。
- 舞台。现在看来有问题了。添加的文件显示为已修改。
- 推送看看我在浏览器查看变化时的样子:
“仅显示前 999 个更改。单击此处加载更多”。我能看到的每个文件都有一个警告:“该文件仅在空白处有所不同”
我猜这是关于行尾,但它几乎不可能查看更改。有没有办法阻止我使用此过程时发生的空白更改?或者扭转空白变化?或者告诉 git 只检查删除的内容?
TLDR 答案 ():
git rm -r --cached .
git config --global core.autocrlf false
git add --renormalize .
git add .
git commit
Stage. Now it looks like there's a problem. The added files are showing as modified.
重复相同的过程,但在第 3 步(暂存)之前,添加:
git config --global core.autocrlf false
这将确保有自动 eol(行尾)转换。
查看 git add .
(或 git add --renormalize .
with Git 2.16+)后跟 git status
是否仍显示已修改的所有内容。
OP Colin confirms in 以下工作:
git config --global core.autocrlf false
git add --renormalize .
git add .
我认为你使这种方式变得比必要的更复杂。要从 git 中删除文件,您只需执行以下操作:
git rm <files>
git add .
git commit
将 <files>
替换为您要删除的文件的名称。您可以使用标准的 glob 语法来匹配多个文件。
这将删除之前提交的文件。没有理由使用 --cached
或任何带有 autocrlf
的东西。这些只会使问题复杂化。
我在此处阅读了有关如何使用 git 命令从存储库中删除忽略文件中的文件的信息:Remove directory from remote repository after adding them to .gitignore。
我正在使用 Visual studio 2019 和 Azure DevOps 中的存储库。我使用了这些步骤:
- 从 Git 资源管理器菜单中,“在命令提示符中打开”
git rm -r --cached .
这告诉 git 停止跟踪所有内容,现在我的所有文件都在“暂存更改”中显示为已删除,而少量文件在“更改”中显示为已添加。这看起来不错。我假设被忽略的文件不会再次添加回来,所以当我提交这些添加时,所有应该首先被忽略的文件都将在服务器上被删除。- 舞台。现在看来有问题了。添加的文件显示为已修改。
- 推送看看我在浏览器查看变化时的样子: “仅显示前 999 个更改。单击此处加载更多”。我能看到的每个文件都有一个警告:“该文件仅在空白处有所不同”
我猜这是关于行尾,但它几乎不可能查看更改。有没有办法阻止我使用此过程时发生的空白更改?或者扭转空白变化?或者告诉 git 只检查删除的内容?
TLDR 答案 (
git rm -r --cached .
git config --global core.autocrlf false
git add --renormalize .
git add .
git commit
Stage. Now it looks like there's a problem. The added files are showing as modified.
重复相同的过程,但在第 3 步(暂存)之前,添加:
git config --global core.autocrlf false
这将确保有自动 eol(行尾)转换。
查看 git add .
(或 git add --renormalize .
with Git 2.16+)后跟 git status
是否仍显示已修改的所有内容。
OP Colin confirms in
git config --global core.autocrlf false
git add --renormalize .
git add .
我认为你使这种方式变得比必要的更复杂。要从 git 中删除文件,您只需执行以下操作:
git rm <files>
git add .
git commit
将 <files>
替换为您要删除的文件的名称。您可以使用标准的 glob 语法来匹配多个文件。
这将删除之前提交的文件。没有理由使用 --cached
或任何带有 autocrlf
的东西。这些只会使问题复杂化。