[英]How to reconnect git branches to master after migration from svn?
我已經使用svn2git將大型svn存儲庫遷移到git了。 現在我有以下情況:
該圖像來自我的GitLab概述。 如您所見,使用svn創建的分支未連接到紅色的master分支。 是否可以將初始的綠色提交“重新連接”到master分支? 因此,每個分支在master后面大約有5k的提交,我想修復它。
謝謝!
git-svn
不是一次轉換存儲庫或存儲庫零件的正確工具。 這是一個偉大的工具,如果你想使用Git的作為前端為現有的SVN服務器,但對於一次性轉換,你不應該使用git-svn
,但svn2git
這是該用例更加適合。
您使用的svn2git
實用程序基於git-svn
,因此也存在大多數相同的缺點。
有很多名為svn2git
工具,可能最好的一種是來自https://github.com/svn-all-fast-export/svn2git的KDE工具。 我強烈建議您使用該svn2git
工具。 這是我所知道的最好的,它可以很靈活地處理其規則文件。
您將可以輕松配置svn2git
的規則文件以生成所需的結果,並且速度更快。
如果您不是100%知道存儲庫的歷史記錄, svneverever
從http://blog.hartwork.org/?p=763 svneverever
是將SVN存儲庫遷移到Git時調查其歷史記錄的好工具。
盡管開始使用git-svn
更容易,但是還有以下一些原因,為什么除了使用它的靈活性之外,使用KDE svn2git
代替git-svn
更為優越:
svn2git
更好地重建歷史記錄(如果使用了正確的歷史記錄),尤其是對於具有分支和合並等更復雜歷史記錄的情況 git-svn
標簽會包含一個額外的空提交,這也會使它們不成為分支的一部分,因此,在您將--tags
給命令之前,正常的fetch
不會獲取它們,因為默認情況下,還會僅獲取指向獲取的分支的標簽。 帶有正確的svn2git標簽是它們所屬的位置 svn2git
配置,而使用git-svn
最終會丟失歷史記錄 svn2git
您還可以輕松地將一個SVN存儲庫拆分為多個Git存儲庫 svn2git
比git-svn
快svn2git
倍 您會看到git-svn
較差而KDE svn2git
較差的原因很多。 :-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.