編輯:我看到這個問題已被問過! git-svn: reset tracking for master具有正確權限的人可能會將其作爲副本關閉。Git-SVN合併失去了我的鏈接到主幹
我使用的是git-svn。我最近完成了一個在git中跟蹤SVN分支的分支。在分公司工作時,我使用以下兩個命令:
$ git svn rebase
$ big svn dcommit
並且一切都很好。 git中的「master」跟蹤svn/trunk和git中的「myBranch」跟蹤svn/branches/myBranch。但在我合併本地所有東西后git
$ git checkout master
$ git merge myBranch
我去推...並假定主將推到svn /主幹。但事實並非如此。相反,「主人」現在也推到svn/branches/myBranch。不知何故,當我將「myBranch」合併到「master」中時,「master」的跟蹤被修改了。
我可能這樣做不對 - 但我想明確地「推」到主幹...
$ git svn dcommit remotes/trunk master
但是,這句法失敗,現在我已經得到了
$ Committing to http://<repo>/trunk ...
dcommitted on a detached HEAD because you gave a revision argument.
The rewritten commit is: b461234...
與SVN後備箱仍未更新。
如何在git中合併,然後將其推送到SVN?我按照指南here,這意味着我可以與正常的git語法合併。它只是沒有跟進,並解釋了爲什麼我的「主」沒有跟蹤我合併的分支。
我也有git-tower,我用命令行並行手動合併後,我現在塔「顯示」下拉列表中的所有遠程分支以「push」或dcommit,但我無法更改從svn/myBranch中的選擇......這可能意味着我不能?
根據我所包含的鏈接,我猜以下內容具有誤導性,因爲雖然有限,但我認爲文本暗示它仍然有效....現在,如果您想將歌劇分支合併到主幹中你的主分支),你可以使用正常的git合併來完成。但是你需要提供一個描述性的提交信息(通過-m),否則合併將會說「Merge branch opera」,而不是有用的東西。 – 2012-02-09 18:45:32
請記住,雖然你使用git merge來完成這個操作,並且合併可能會比在Subversion中容易得多(因爲Git會自動爲你檢測合適的合併基礎),但這不是一個正常的Git合併提交。你必須將這些數據推送回Subversion服務器,該服務器無法處理跟蹤多個父代的提交;因此,在您將其推入後,它將看起來像是一次提交,它在一次提交下壓縮了另一個分支的所有工作。 – 2012-02-09 18:45:58