从存储库中删除奇怪的'Iconr'文件

ATV*_*ATV 28 git macos atlassian-sourcetree

在我的git存储库中,我在暂存区域中有一个奇怪的文件,它拒绝被还原,删除,提交 - 基本上我不能让它消失 ..

该文件必须是一些古老的OS 9文件,坐在文件夹中多年.

几天前我已经删除了文件系统中的文件,所以现在git正在跟踪删除Iconr.

然而,它被困在那里.

我通过SourceTree(我的git UI客户端)得到的错误是

致命:pathspec'文件夹/ Iconr'与任何文件都不匹配

知道如何让git 完全忘记那个文件吗?

小智 29

添加一行

Icon?
Run Code Online (Sandbox Code Playgroud)

to .gitignore为我工作.

https://answers.atlassian.com/questions/167170/removing-invisible-icon-files-on-a-local-repository-on-a-mac

  • 放大:添加'图标?' .gitignore会导致'Icon\r'被忽略.既然?是一个单字符外卡,然后像Iconx,Icon1这样的名字也会被忽略.然而,'偶像?' 使用任何文本编辑器都很容易应用......并且对于许多用例来说已经足够了. (3认同)

Von*_*onC 10

最好还原到命令行以获得更准确的错误消息.

在那里你可以尝试a git add -u,然后是a git commit,以便在repo中注册删除该文件.
请参阅" git status说文件被删除但是git rmerror: pathspec '…' did not match any files "作为示例.

您还可以预览git clean会给出的内容:( 当我尝试在Git中删除文件夹时git clean -d -x -n," 为什么没有"pathspec"中有解释 ")

另一个问题是当前分支中根本没有跟踪该文件,但是在另一个分支中跟踪该文件.看到答案,检查是否是这种情况.


ken*_*orb 6

Icon^M样的文件很可能是由一些外部应用程序,如创建胡闹这是突出自己的文件夹。

您应该删除正在执行此操作的应用程序,或者在您的.gitignore文件中忽略它,例如

printf "Icon\r\r" >> .gitignore
Run Code Online (Sandbox Code Playgroud)

这是一个shell命令。或者将其添加为,Icon??或者您可以^M通过Control-V并点击来重现特殊字符Enter

相关:如何忽略图标?在 git 中

如果您不想将此更改提交到您的存储库,或者将其添加到您的全局.gitignore或将其添加到.git/info/exclude.

请参阅:使用 Git/忽略文件

要自行删除文件,请尝试:

find . -type f -name 'Icon?' -print -delete
Run Code Online (Sandbox Code Playgroud)

或者,如果它们是唯一未暂存的,请运行:git clean -f