2016-06-08 1093 views
3

我们正在同一个基础上开发多个项目,所以我们有一个公司存储库,其中包含一些分支(每个项目有1个+一些用于合并项目),每个开发人员都有自己的回购相同(或多或少)分支。现在其中一个项目已经开始,它基本上成了主人。其他项目应该合并到它并且不会破坏任何东西。Git pull或git fetch忽略某些文件

所以我有我的回购一个项目的所有代码/元数据,现在我必须从上游(活项目)拉主,以合并一切。我试过的只是:

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从上游拉/取所有东西?

回答

0

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

所以基本上我所做的是:

  • 创建新的分支
  • 拉到上游主
  • 取得了丢失的文件
  • 副本切换回我的分支
  • 粘贴复制的那些文件
  • 将它们添加到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