簡體   English   中英

從svn遷移后,如何將git分支重新連接到master?

[英]How to reconnect git branches to master after migration from svn?

我已經使用svn2git將大型svn存儲庫遷移到git了。 現在我有以下情況:

git分支與master斷開連接

該圖像來自我的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%知道存儲庫的歷史記錄, svnevereverhttp://blog.hartwork.org/?p=763 svneverever是將SVN存儲庫遷移到Git時調查其歷史記錄的好工具。


盡管開始使用git-svn更容易,但是還有以下一些原因,為什么除了使用它的靈活性之外,使用KDE svn2git代替git-svn更為優越:

  • svn2git更好地重建歷史記錄(如果使用了正確的歷史記錄),尤其是對於具有分支和合並等更復雜歷史記錄的情況
  • 標簽是真實標簽,不是Git中的分支
  • 使用git-svn標簽會包含一個額外的空提交,這也會使它們不成為分支的一部分,因此,在您將--tags給命令之前,正常的fetch不會獲取它們,因為默認情況下,還會僅獲取指向獲取的分支的標簽。 帶有正確的svn2git標簽是它們所屬的位置
  • 如果您在SVN中更改了布局,則可以輕松地使用svn2git配置,而使用git-svn最終會丟失歷史記錄
  • 使用svn2git您還可以輕松地將一個SVN存儲庫拆分為多個Git存儲庫
  • 或將同一SVN根目錄中的多個SVN存儲庫輕松組合到一個Git存儲庫中
  • 正確的svn2gitgit-svnsvn2git

您會看到git-svn較差而KDE svn2git較差的原因很多。 :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM