gpt4 book ai didi

macos - Git check out /删除带有特殊字符的文件

转载 作者:太空狗 更新时间:2023-10-29 13:35:57 27 4
gpt4 key购买 nike

我有一个文件名中包含特殊字符(变音符号)的文件。我已经重命名了该文件,但 git 仍然告诉我我有“更改未暂存提交”。但是,我记不起文件的正确名称,git 只告诉我名称是 "Mu\314\210.jpg"。我不知道应该是什么格式。 utf8?我尝试了 git rm 并复制了字符串,但没有成功。

如何找出文件的原始名称或如何在不知道确切文件名(可能只有文件扩展名)的情况下删除文件?

编辑:我开始觉得该文件是在 Windows PC 上创建的,并且变音符号的编码在那里有所不同。但是,我无法解释为什么我无法删除该文件。

我刚刚发现那些是八进制表示。尝试来自 Can't remove directories git 的解决方案, Remove a file with a strange name from git , 和 Git: how to specify file names containing octal notation on the command line , 但是,没有帮助。特别是解决方案

git rm `printf "Mu\314\210.jpg"`

没有删除文件。它仍然给我 "Mu\314\210.jpg"没有匹配任何文件。有没有其他方法可以删除文件?

printf 告诉我 "Mu\314\210.jpg""Mü.jpg"。然而,ü 在我的 Mac OSX 上的八进制表示应该是 \303\274。这就是为什么我认为 u\314\210 来自 Windows PC。仍然不确定这有什么帮助。

我只是尝试运行 git-rm 建议的git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached.现在我非常肯定该文件在再次添加之前无法删除。我将尝试获取具有旧文件名的文件,然后将其删除。

好的,添加旧文件也无济于事。 Mac OSX 似乎会自动更改八进制表示法。似乎最后的机会是在 Windows PC 上将其删除。

最佳答案

使用 git rm 你可以这样做:

git rm Mu*.jpg

这将从索引中删除所有以 Mu 开头并以 .jpg 结尾的文件

如果你在 repo 中有其他文件匹配它们将被删除的模式。在这种情况下,您可以使用:

git add -u Mu*.jpg

来自 git add 的手册页:

-u --update

Only match against already tracked files in the index rather than the working tree. That means that it will never stage new files, but that it will stage modified new contents of tracked files and that it will remove files from the index if the corresponding files in the working tree have been removed.

(这还将暂存存储库中与模式匹配的文件中所做的任何其他更改,如果你想使用 git reset,你可以随时取消暂存它们)

关于macos - Git check out /删除带有特殊字符的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23808611/

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