【发布时间】: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 从上游提取/获取所有内容?
【问题讨论】: