【问题标题】:Git cannot find file in remote despite file being there尽管文件在那里,但 Git 无法在远程找到文件
【发布时间】:2019-08-01 22:52:18
【问题描述】:

我有一个文件project/data/data.csv,其中project/ 是父项目,data/ 是子模块。在project/data/里面我跑 git checkout origin/master data.csv

git 回复:

error: pathspec 'data.csv' did not match any file(s) known to git.

但是,当我在 gitlab 上掌握时,文件非常多。

我试过 git reset、git fetch 和 git pull 都没有解决问题。

在 git 发疯之前发生的事情是,我得到了一个损坏的树对象。为了解决这个问题,我必须删除所有此类对象,然后执行 git fetch 和 git pull。

这导致数据子模块报告了一个脏对象,我通过删除 .git 文件并执行 git pull 来修复它。

之后我似乎可以毫无问题地拉动和推动,所以我不确定它是否相关。

关于如何让 git 再次跟踪文件有什么建议吗?

【问题讨论】:

    标签: linux git version-control git-remote


    【解决方案1】:

    如果您已经损坏并最终删除了 .git 您已经尝试过硬重置(假设您已经尝试过 git reset origin/master 并且不担心丢失任何文件。如果是这种情况,请尝试 git clone <repo> 这应该使用正确的文件重新初始化您的仓库

    【讨论】:

    • 虽然这是我的正常做法,但在删除 .git 文件夹和当前状态之间修改的一些当前文件需要保留。
    • 但是这些文件仍然是本地的,对吧?您可以在另一个目录中存储或物理备份,然后在您的存储库重新初始化后重新添加它们。
    • 去死吧,对整个事情进行核打击并彻底清理可能比试图恢复我所拥有的要好。
    【解决方案2】:

    要跟踪该文件,请尝试以下操作:

    git add data.csv
    

    【讨论】:

    • 试过了,没用,文件也在远程
    • 啊。你事先做了 git fetch 吗?
    • 是的,我做了 git fetch 和 git fetch origin
    【解决方案3】:

    不妨试试

    git submodule update --rebase --remote
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-16
      • 2012-06-02
      • 1970-01-01
      相关资源
      最近更新 更多