我正在使用Git-Svn與工作中的Svn存儲庫進行交互,似乎無法找到有效解決衝突的方法來解決我的生活。我已閱讀關於此主題的其他問題,但顯然我需要更多補救措施,因爲我似乎總是以某種無休止的循環結束。我重定位,使用mergetool(meld)來解決我的衝突,並且當我完成所有這些時,我嘗試執行dcommit,並在提交錯誤期間收到合併衝突。解決Git Svn衝突
我知道這感覺像是重複的,但令人沮喪的是讓我再次問到,關於我如何去做這件事的一些非常具體的細節,以便希望有人能夠確切地告訴我我的過程被搞砸了。
我的設置:
我有一個遠程分支(SVN /主幹),一個本地分支(主幹)和另一個本地分支,我通常在(工作幹線)工作。樹幹從svn/trunk檢出,工作樹幹從trunk中檢出。
這就是我一直在做:
- 在我的樹幹,
git svn rebase
(返回衝突) git mergetool
- [解析該文件衝突]
- 保存合併後的文件從融合並緊密融合。
git add .
git rebase --continue
- [漂洗,重複]
- 如果我問一個消息我是否使用
git add
,我git rebase --skip
當我到的所有報告的變化結束,一切都只是停止,我想也許我不知道該怎麼做。 Git沒有顯示任何內容,我似乎回到了主幹上。然後Git允許我提交,但如果我之後立即嘗試重新綁定,我最終會重新解決我剛剛解決的衝突。
顯然我在這裏錯過了一個關鍵的部分,但我只是沒有看到它,它導致了很多問題和挫折。在Git中合併可能很容易,但我肯定不會發現這種情況。
謝謝。
更新:只是想拋出一個快速更新來描述我的工作流程,以防萬一是部分(或全部)問題。
首先,在使用svn/
前綴克隆存儲庫後,我有我的svn/trunk
遠程分支。鑑於:
- 我
git co -b trunk svn/trunk
檢查我的遠程到本地分支。 - 我
git co -b working-trunk
創建一個工作分支,我用它來創建一個更多的分離度,以便我的本地中繼可以始終鏡像我的遠程中繼。 - 我刪除了默認主分支(當使用svn時,我覺得用「trunk」而不是「master」來思考更容易)。
一旦我有我所有的分支,我的典型的工作流程是這樣的:
- 在工作幹線,我做我的變化,並提交它們。
- I
git co trunk
並做一個git svn rebase
。 - 假設新代碼已重新發售,我
git rebase working-trunk
。 git co working-trunk
git merge trunk
git rebase trunk
git co trunk
git merge working-trunk
git svn dcommit
這是一個很大的步驟,我知道,但這是建議每個人都在這裏和其他地方。在這個過程中,我的致命缺陷會在哪裏?
再次感謝。
做了回答您採摘(Jistin's)解決問題? – inger 2010-06-17 14:19:00