我正在研究一個使用Subversion作爲存儲庫的項目。因爲我需要進行一些無法發送到svn服務器的更改,所以我開始使用git svn
以便我可以執行本地簽入。我的設置如下所示:`git svn rebase` vs`git rebase trunk`
分支機構: trunk(跟蹤svn trunk),master(非常接近svn中的內容)和topic。
*------------------ trunk
\
*-----------*--------- master
\
*-------- topic
工作流程:
[on branch master]
$ git svn fetch
$ git svn rebase
$ git checkout -b topic
$ git rebase master
[hack hack hack]
$ git commit -a
[once upstream is ready for my changes]
$ git svn fetch
$ git checkout master
$ git svn rebase
$ git checkout topic
$ git rebase master
$ git svn dcommit
$ git checkout master
$ git svn rebase
$ git branch -d topic
。假定沒有一個承諾git svn fetch
和git svn rebase
之間SVN, 是git svn rebase
上掌握基本相同git rebase trunk
在主運行運行?
是否有更合理的工作流程使用?看起來好像有很多不斷變化的分支和重新發售。我明白,我希望能夠在svn的基礎上重新定義我的工作,但似乎我正在進行更多的rebase而不是絕對必要的。
第一:所以我不需要在git svn rebase之前'git svn fetch' ...只要我在'master'上。但如果我使用'topic','git svn fetch'會更新'trunk',但是隻留下'master'和'topic'。我從來沒有'git svn rebase'我的主題分支,但我只'git rebase'它。有趣的知道。 –
@SeanMcMillan「只要我是主人」:是的,這是主意。並且你每次都做一個'git checkout master',所以... – VonC
第二:根據文檔,'git svn dcommit'沒有指定的分支會推動當前HEAD的提交,而不僅僅是'master'。所以我承諾SVN *來自我的分支*,然後依靠'master'上的'git svn rebase'將SVN中的提交返回。在我完成之後,我放棄了'topic'分支。這不是猶太教嗎? –