所以我有3个的Git分支:将多个git分支合并为主?
- 主
- 刷新
- auth_upgrade
我还没有真正已经用树枝像我应该......所以master
的方式过时,refresh
已过时,auth_upgrade
实际上是完全当前的分支。
所以...我最终想让auth_upgrade
主分支,然后git push
它到我的github回购。
这样做的最佳过程是什么?
所以我有3个的Git分支:将多个git分支合并为主?
我还没有真正已经用树枝像我应该......所以master
的方式过时,refresh
已过时,auth_upgrade
实际上是完全当前的分支。
所以...我最终想让auth_upgrade
主分支,然后git push
它到我的github回购。
这样做的最佳过程是什么?
你可以拉成auth_upgrade
master
。
$ git co master
$ git pull . auth_upgrade
master
主线工作,并使用该分支远程同步..refresh
,如果有要包括一些独特的变化..见:
$ man git-pull
git-pull - Fetch from and merge with another repository or a local branch
可以重命名与git branch -m
选项分支:
git branch -m master old_master
git branch -m auth_upgrade master
但是,如果我重新命名'auth_upgrade'到'master'的,然后尝试推到github上,我得到'非快进'错误。另外,'master'和'auth_ugrade'之间的所有新文件和更改都不会被推送,所以当我从分支部署时,这些文件完全不受控制。 – Shpigford 2009-11-27 19:09:27
啊,你没有提到'master'不是'auth_upgrade'的祖先。这确实有所作为。我会留下我的回答,以防其他人有类似的情况,可以通过重命名。 – 2009-11-27 19:12:42
如果当你说 '过时' T他老分支是严格的祖先,那么你真的没有任何合并问题。
如果你只是想使你的当前分支到主分支上的远程存储库,你可以这样做:
git push origin HEAD:master
编辑:从您的意见之一,它听起来就像你没有所有从当前分支远程主,虽然变化,所以你可能需要成功地前推,将它们合并在:
git fetch
git merge origin/master
您就可以删除你的本地分支。删除一个小的-d
是安全的,它只会删除当前分支的祖先分支。
git branch -d master
git branch -d refresh.
如果你烦恼,你的本地分支不叫师傅,你现在可以做的事:
git checkout -b master
git branch -d auth_upgrade
现在我遇到的问题是auth_upgrade和master之间存在各种文件差异冲突。我如何才能让auth_upgrade只是覆盖master中的任何代码差异? – Shpigford 2009-11-27 20:07:40
请查看/ http://www.kernel.org/pub/software/scm/git/docs/git-merge.html/ /合并策略:我们的/ 这解决了任何数量的头,但是生成的合并树总是当前分支头的树,实际上忽略了所有其他分支的所有更改。它是用来取代侧枝的旧发展历史。 – miku 2009-11-27 20:32:36