Git 尝试 lstat 其工作目录之外的文件

发布于 2024-12-22 13:28:24 字数 442 浏览 1 评论 0原文

我最近开始遇到 git 的奇怪行为。我使用的是 Windows 7 并使用 MINGW32。

我的 git 存储库位于 /d/www/project1/app

当我输入 git pull origin master 时,我曾经得到:

fatal: cannot lstat '\/$RECYCLE.BIN': No such file or directory

这是 中的隐藏系统文件夹>/d。删除它后,我注意到它只是移动到它可以在 /d (我的 D: 驱动器的根文件夹)中找到的下一个文件,并且仍然抛出相同的 lstat 错误。

所以问题很简单 - 为什么它会尝试 lstat 我的 D 驱动器上的每个文件和文件夹?

谢谢。

I recently started experiencing weird behavior with git. I'm on Windows 7 and using MINGW32.

My git repository is in /d/www/project1/app

When I type in git pull origin master, I used to get:

fatal: cannot lstat '\/$RECYCLE.BIN': No such file or directory

Which is a hidden system folder in /d. After removing it, I noticed it just moved on to the next file it could find in /d (root folder of my D: drive) and is still throwing the same lstat error.

So the question is simple - why on earth does it try to lstat every file and folder on my D drive?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

橘虞初梦 2024-12-29 13:28:24

驱动器 D: 的根目录中必须有一个 .git 文件夹(可能是意外创建的)(并且您没有在实际存储库所在的正确文件夹中执行该命令)

There must be a .git folder ( created accidentally maybe) in the root of drive D: ( and you are not doing the command in the correct folder where your actual repo)

2024-12-29 13:28:24

请注意,使用 Git 2.5+(2015 年第 2 季度)时,不应再弹出此错误消息。

请参阅 提交 838d6a9,作者:大卫·特纳(csusbdt),2015 年 5 月 18 日。
(由 Junio C Hamano -- gitster -- 合并于 提交f93a393,2015 年 6 月 1 日)

clean:仅 pathspec

中的 lstat 文件

尽管 "git clean" 采用 pathspec限制要清理的工作树部分,它使用 lstat(2),然后检查路径是否在路径规范内。

忽略路径规范之外的路径并继续而不检查
lstat(2)。即使这样的路径由于 EPERM 等原因而无法读取,
"git clean" 不应该在意。

通过 git-for-windows 版本,Windows 版 Git 只需几天Linux Git 发布后。

Note that with Git 2.5+ (Q2 2015), this error message should not pop up anymore.

See commit 838d6a9 by David Turner (csusbdt), 18 May 2015.
(Merged by Junio C Hamano -- gitster -- in commit f93a393, 01 Jun 2015)

clean: only lstat files in pathspec

Even though "git clean" takes pathspec to limit the part of the working tree to be cleaned, it checked the paths it encounters during its directory traversal with lstat(2), before checking if the path is within the pathspec.

Ignore paths outside pathspec and proceed without checking with
lstat(2). Even if such a path is unreadable due to e.g. EPERM,
"git clean" should not care.

And with git-for-windows releases, a Git for Windows will be only days after the Linux Git release itself.

风吹短裙飘 2024-12-29 13:28:24

我遇到了一个问题,我的本地 gitlab 运行程序存储在 ExFat 格式的外部硬盘驱动器上。将其格式化为 Mac OS Extended Journaled 后,它就可以工作了

I had an issue where my local gitlab runner stored builds on an ExFat formatted external hard drive. After formatting it to Mac OS Extended Journaled, it worked

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文