【问题标题】:Git pull or git fetch ignores some filesGit pull 或 git fetch 忽略一些文件
【发布时间】:2016-10-08 16:35:57
【问题描述】:

我们正在同一个基础上开发多个项目,因此我们有一个公司存储库,其中包含一些分支(每个项目 1 个 + 一些用于合并项目),每个开发人员在自己的仓库中工作,具有相同(或多或少)的分支.现在其中一个项目上线了,它基本上成了主人。其他项目应该合并到它而不破坏任何东西。

所以我的 repo 中有一个项目的所有代码/元数据,现在我必须从上游(实时项目)中拉出 master 以合并所有内容。我尝试的很简单:

git pull upstream master

这有效(至少我认为有效)。验证后,我们收到一些错误,表明某些文件丢失。所以我检查了一下,显然有些文件确实丢失了,但git pull upstream master 没有拉它们,所以在我的分支中,我只在一个文件夹中看到许多(40+)个文件中的几个(3)(可能更多在其他文件夹中丢失,我还没有检查其他文件夹。

如果我再次尝试拉动,我会得到以下信息:

MySuperAwesomeLaptopName:ProjectLocation Novarg$ git pull upstream master
From https://github.com/just_some_super_secret_repository/some_secret_project
 * branch            master     -> FETCH_HEAD
Already up-to-date.

但我确实清楚地看到它不是最新的,很多文件丢失了!


我已经看到this question,但 OP 要求任何解决方案,而答案基本上是强制覆盖所有内容

就我而言,我确实需要从远程存储库中获取然后合并。

我可以使用另一个问题的答案并强制覆盖我拥有的内容,但这会删除我所有的工作,所以我确实需要合并所有内容。

我可以在我的分支中手动创建所有这些文件,但这意味着我必须检查所有名称并仅找到缺少的名称,然后手动复制粘贴代码并保存。

我还检查了我的.gitignore 文件,但这些文件不在其中。

这种行为的原因是什么?如何强制 git 从上游提取/获取所有内容?

【问题讨论】:

    标签: git github merge


    【解决方案1】:

    所以基本上我仍然没有找到问题所在的解释,但我找到了解决方法。如果有人能对这种行为给出一个很好的解释,我很乐意接受你的回答,但现在我会把这个标记为好的。

    所以基本上我所做的是:

    • 创建新分支
    • 拉取上游主节点
    • 复制丢失的文件
    • 切换回我的分支
    • 粘贴了这些文件的副本
    • 将它们添加到 git

    就 git 命令而言,它是:

    git checkout -b some_other_super_awesome_branch
    git pull upstream master
    

    将丢失的文件复制到其他目录

    git checkout my_other_branch
    

    将丢失的文件粘贴到那里

    git add path/to/my/missing/files/*
    git push origin myCoolBranch
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-31
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      • 2016-04-09
      • 1970-01-01
      • 1970-01-01
      • 2020-01-31
      相关资源
      最近更新 更多