所以我有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