搜尋

首頁  >  問答  >  主體

svn遷移到git,分支沒了?

根據progit上的文檔操作的:http://git-scm.com/book/zh/v2/Git-%E4%B8%8E%E5%85%B6%E4%BB%96%E7%B3% BB%E7%BB%9F-%E8%BF%81%E7%A7%BB%E5%88%B0-Git

遇到兩個問題:

為了將標籤變為合適的 Git 標籤,運行

 $ cp -Rf .git/refs/remotes/origin/tags/* .git/refs/tags/
 $ rm -Rf .git/refs/remotes/origin/tags

這會讓原來在 remotes/origin/tags/ 裡的遠端分支參考變成真正的(輕量)標籤。
接下來,將 refs/remotes 下剩餘的引用移動為本地分支:

$ cp -Rf .git/refs/remotes/* .git/refs/heads/
$ rm -Rf .git/refs/remotes

.git/refs/remotes 現在所有的舊分支都是真正的 Git 分支,並且所有的舊標籤都是真正的 Git 標籤。
最後一件要做的事情是,將你的新 Git 伺服器新增為遠端倉庫並推送到上面。

但是執行cp的時候發現這個目錄並不存在,git branch -r列出來很多原來的

$git branch -r
origin/v1.1
origin/tags/v1.1.2
origin/tags/v1.1.2@438
origin/tags/v1.2.1
origin/tags/v1.2.1@474
origin/tags/v1.2.3
origin/trunk

然而 .git/refs/remotes/origin/tags 下面並沒有文件
參考http://nowing.iteye.com/blog/844608的做法,使用標準指令將branch轉成tags

$ git tag tagname tags/tagname     ----用指定的分支创建一个Git标签 
$ git branch -r -d tags/tagname    ----删除指定的远程分支

最後用git push origin --allpush到git伺服器,但是只有主幹,沒有分支
git push origin master --tags有主幹和tags,但是也沒有分支

最後的最後問題來了,怎麼把分支也移上去?

巴扎黑巴扎黑2793 天前610

全部回覆(2)我來回復

  • 世界只因有你

    世界只因有你2017-05-02 09:25:00

    折騰了好久,最後用svn2git解決了
    基本思路就是要把remote的branch轉成本地branch,再push
    svn2git直接搞定了

    回覆
    0
  • 漂亮男人

    漂亮男人2017-05-02 09:25:00

    雷雷

    回覆
    0
  • 取消回覆