2011-08-12 135 views
12

我的同事将生产热补丁的某些更改合并到他的本地主分支中,然后将主服务器推送到我们的GitHub存储库。现在我尝试用他的更改更新我的本地主分支。当从git控制台执行“git pull origin”时,通过显示所有文件似乎可以正常工作。但是,接近尾声时,它会停止并显示消息“正在中止”。Git Pull Aborting

我不知道下一步该怎么做。帮帮我?

更新: 所以问题解决了。问题的真正根源在于我的同事从他的分支中的.gitignore文件中删除了一些条目,允许多个新文件进入他的签入。由于我的本地.gitignore仍然忽略这些文件,我本地回购没有想到我有本地工作文件添加到索引。我结束了删除所有的文件,然后拉工作,并把他们全部英寸

我一定会更加小心编辑.gitignore文件,并检查它。我现在有一些新的赞赏其影响在其他开发者。

+0

其实,还有一个好奇可能会或可能不相关。当我的同事推他的时候,事情“似乎”就像他们的工作。但是,当我们去GitHub时,没有任何新的提交。现在他在GitExtensions中的本地分支视图看起来是正确的,我们也能够在GitHub中看到他的变化。所以当你合并本地然后push时,你不希望在GitHub上看到新的提交吗?如果不是,我怎么能通过看GitHub来告诉主人已经改变了? – sisdog

+0

@Tim,它表明你编辑了我的文章。你有什么改变吗?我不知道人们可以改变我的帖子,并且...你为什么改变它? – sisdog

+0

点击“5分钟前编辑”中的“5分钟前”,你会看到差异。他只是做了小的标点符号更改。 –

回答

8

他可能把提交的地方放在现有的提交树中,而不是放在它的顶部。

试试这个:

git fetch origin 
git rebase origin/master 

如果不工作,只是创建的origin地方分支机构,樱桃挑选你的本地提交到它,重置主无论他提交合并之前,然后合并您的当地分支到主人。

我的猜测是他的推动涉及--force在某些时候,以避免not a fast-forward commit消息。将来你不想这样做。

+0

谢谢@Stefan,但我仍然遇到问题。至少通过运行rebase我收到了一些信息。最后它说:中止 - 计数不分离头部。这是否提供了更多的线索? – sisdog

+0

你有任何本地文件可以被rebase更改吗?尝试检出一个新的分支来源,看看有什么说的。 'git checkout -b testbranch origin/master' –

+0

好吧,我得到了同样的错误,但是这次我在窗口中滚动并学习了更多东西。因此,在运行命令后立即得到以下消息:“错误:以下未跟踪的工作树文件将被checkout覆盖:”。所以,这是真正的问题。但是,解决方案是什么?我认为我的同事改变了.gitignore文件,它在版本控制中添加了一堆新文件。它向我展示了所有这些文件。所以我应该先获取最新的.gitignore文件,然后提交所有新文件? – sisdog

5

问题的根源在于我的同事从他的分支中的.gitignore文件中删除了一些条目,允许几个新文件进入他的签入。由于我的本地.gitignore仍然忽略这些文件,它不认为我有本地工作文件添加到索引。我最终删除了所有的文件,然后拉动工作,并把它们全部带入。