【问题标题】:Error when pull or push to git: ENOENT: no such file or directory拉或推到 git 时出错:ENOENT:没有这样的文件或目录
【发布时间】:2019-12-13 03:53:15
【问题描述】:

每次我想使用 vscode git throw 错误消息从我的 GitHub 存储库中拉取或推送时都会遇到问题:

Error: ENOENT: no such file or directory, watch 'c:\repos\app-repo\.git\refs\remotes\origin\master'

该存储库在 GitHub 中是私有的。 在c:\repos\app-repo\.git\refs\remotes\origin 我有一个名为 HEAD 的文件。

我该怎么办?为什么会出现这个错误?

这里是来自 vscode-git-output-control 的完整错误:

git pull --tags origin master
> git show :package.json
From https://github.com/user/app-repo
 * branch            master     -> FETCH_HEAD
> git status -z -u
> git symbolic-ref --short HEAD
> git rev-parse master
> git rev-parse --symbolic-full-name master@{u}
> git rev-list --left-right master...refs/remotes/origin/master
> git for-each-ref --format %(refname) %(objectname) --sort -committerdate
> git remote --verbose
Failed to watch ref 'c:\repos\app-repo\.git\refs\remotes\origin\master', is most likely packed.
Error: ENOENT: no such file or directory, watch 'c:\repos\app-repo\.git\refs\remotes\origin\master'
    at FSWatcher.start (internal/fs/watchers.js:164:26)
    at Object.watch (fs.js:1232:11)
    at Object.t.watch (c:\Users\user\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\git\dist\main.js:1:6950)
    at E.updateTransientWatchers (c:\Users\user\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\git\dist\main.js:1:97463)
    at u.fire (c:\Users\user\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:50:227)
    at T.updateModelState (c:\Users\user\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\git\dist\main.js:1:114843)
> git show :package.json
> git fetch
> git show :package.json
> git status -z -u
> git symbolic-ref --short HEAD
> git rev-parse master
> git rev-parse --symbolic-full-name master@{u}
> git rev-list --left-right master...refs/remotes/origin/master
> git for-each-ref --format %(refname) %(objectname) --sort -committerdate
> git remote --verbose
Failed to watch ref 'c:\repos\app-repo\.git\refs\remotes\origin\master', is most likely packed.
Error: ENOENT: no such file or directory, watch 'c:\repos\app-repo\.git\refs\remotes\origin\master'
    at FSWatcher.start (internal/fs/watchers.js:164:26)
    at Object.watch (fs.js:1232:11)
    at Object.t.watch (c:\Users\user\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\git\dist\main.js:1:6950)
    at E.updateTransientWatchers (c:\Users\user\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\git\dist\main.js:1:97463)
    at u.fire (c:\Users\user\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:50:227)
    at T.updateModelState (c:\Users\user\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\git\dist\main.js:1:114843)
> git show :package.json

【问题讨论】:

  • 你在 github 上的 repo 中有 master 分支吗?
  • 是的。我有。它指向主分支。
  • 我不使用 Visual Studio,所以我可能是在说我的帽子,但是:这看起来像 VS 中的一个错误(或 bug-ette)。打包的参考是正常的。如果 VS 想知道 ref 更改并且 ref 不存在,它应该在包含目录上执行文件系统监视,或者只是继续重试 ref 而不会抱怨。这个错误是否会干扰你完成自己的工作,我不知道。
  • FWIW,我也收到了。在克隆一个新的 repo 副本并将该目录作为新工作区打开后,我在 VS 代码输出窗格中看到它。

标签: git github visual-studio-code


【解决方案1】:

在我的情况下,我解决了创建分支文件夹的问题:

mkdir /home/projects/project_example/.git/refs/remotes/origin/branch_name

【讨论】:

    【解决方案2】:

    我在尝试通过 Mac 上的 VS Code(带密码的 SSH)推送到 GitHub 的私有仓库时遇到了同样的问题。在创建 ZiTAL 发布的分支后,它以某种方式工作。不过这很奇怪。

    【讨论】:

    • 这也发生在我的 vs 代码上,这似乎是一个有点普遍的问题,因为我在 git 上看到了一些关于它的线程提出的问题但没有解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    • 2018-07-03
    • 2014-01-12
    • 1970-01-01
    • 2023-03-31
    • 2022-08-17
    相关资源
    最近更新 更多