重新引用同一文件上的多个合并

时间:2012-01-09 12:41:02

标签: git github

我在GIT很新,但我很了解基础知识。但是,我感到困惑......

我们正在使用github,我的分支机构领先13分,20分支在主分支机构之后(非常过时)。

我做了以下事情:

git checkout myBranch  
git rebase master

我似乎因某种原因重复合并了相同的文件。

我想这是因为我将更改应用于主分支上提交的每个不同版本?

这花了很长时间,当我完成时,我认为我可以把我(现在希望是最新的)分支推回到github。但它告诉我,我有非快速前进的变化 - 我不明白......

然后我做了拉,git告诉我,我必须再次合并所有相同的文件......

在理解这里发生的事情时,我必须遗漏一些基本的东西。

1 个答案:

答案 0 :(得分:2)

基本上rebase暂时删除你的提交,将它们存储为补丁,获取主机的头部,然后重新应用你的补丁。

这是一个网站,用于解释git rebase的含义 - http://book.git-scm.com/4_rebasing.html

小心: 这里有龙! http://vectorya.com/freevectors/vector-cartoons/dragon-baby-green/

如果您完全确定没有问题,可以忽略该错误并执行git push --force然而,您冒着破坏中央存储库的风险。 Github不建议 - http://help.github.com/remotes/查找Dealing with “non-fast-forward” errors

部分

或尝试解决先拉,然后推送 - git pull origin master然后git push origin master

一种选择是使用git merge代替rebasegit pull origin master让主人了解最新动态。社区一直在讨论反叛与合并的问题,各有利弊。

为防止重复内容,涵盖相同主题的文章为http://softwareswirl.blogspot.com/2009/04/truce-in-merge-vs-rebase-war.htmlGit workflow and rebase vs merge questionshttp://www.randyfay.com/node/89

合并到主人的例子:

  • git checkout master然后git merge mybranch

将master合并到mybranch然后合并到master

  • git checkout mybranch然后git merge master
  • git checkout master然后git merge mybranch