簡體   English   中英

將SVN Repo作為分支導入到現有的Git倉庫中

[英]Importing an SVN Repo into an EXISTING Git repo as a branch

我目前有一個關於谷歌代碼的項目,我想將其整合到Github上的一個項目中。

問題是SVN項目本質上只是github上較大項目的一個文件夾,所以我認為我不能只使用git-svn。

我假設我可以使用git svn克隆項目,但后來我不確定如何將svn項目正確地移植到現有的git項目上。

期望的結果是將SVN歷史記錄轉換為Git分支(不將其移植到master上)。

能夠重新回到svn並不是真的有必要(如果這有幫助的話)。

解決了

我最終使用了just_doug的建議,但稍作修改:

1:我使用http://ivanz.com/2009/01/15/selective-import-of-svn-branches-into-a-gitgit-svn-repository/中的建議將googlecode添加為遠程參考

2:我為我想要的遠程分支創建了一個新的分支

3:我用過

git merge -s ours --no-commit googlecode-remote

將兩者合並

4:然后我用了

git read-tree --prefix = folder1 / folder2 / -u googlecode-remote

讀取合並歷史記錄並將其重新綁定到所需的子文件夾

希望這可以幫助處於類似情況的人;)

我之前沒有使用它,但聽起來你想要子樹合並策略 本文提供了有關如何使用它的更多詳細信息。

基本上,您將SVN存儲庫添加為遠程,然后使用git read-tree命令將其“移植”為純git存儲庫的子目錄。 根據您希望歷史記錄顯示的方式,您可以執行git merge -s subtree將其合並到pure-git分支(保留git-svn提交),也可以按照第二個鏈接中的步驟添加--squash--no-commit標志,並將合並顯示為pure-git分支中的單個提交。

說明假設遙控器也是一個git repo。 如果使用git而不是git-svn創建本地存儲庫,則不確定它將如何發揮作用。 它是一種kludge,但是這里有一些腳本用於創建一個中間存儲庫,它只是鏡像git中的SVN repo。 這樣,您可以制作svn repo的git-svn鏡像,並將其添加為遠程,上面的說明應該如所描述的那樣工作。

暫無
暫無

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

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