cari

Rumah  >  Soal Jawab  >  teks badan

Menghijrahkan svn ke git, cawangan sudah tiada?

Menurut dokumentasi pada progit: http://git-scm.com/book/zh/v2/Git-与其他系统-迁移到-Git

Menghadapi dua masalah:

Untuk menukar teg kepada teg Git yang betul, jalankan

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

Ini akan menukar rujukan cawangan jauh yang asalnya dalam alat kawalan jauh/asal/tag/ menjadi tag sebenar (ringan).
Seterusnya, alihkan rujukan yang tinggal di bawah rujukan/jarak jauh ke cawangan tempatan:

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

.git/refs/remotes Kini semua cawangan lama ialah cawangan Git sebenar, dan semua teg lama ialah teg Git sebenar.
Perkara terakhir yang perlu dilakukan ialah menambah pelayan Git baharu anda sebagai repositori jauh dan menolaknya.

Tetapi apabila melaksanakan cp, didapati bahawa direktori ini tidak wujud git branch -r menyenaraikan banyak yang asal

$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

Walau bagaimanapun, tiada fail di bawah .git/refs/remotes/origin/tags
Rujukanhttp://nowing.iteye.com/blog/844608的做法,使用标准命令将branch转成tags

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

Akhir sekali, gunakan git push origin --all untuk menolak ke pelayan git, tetapi hanya terdapat batang dan tiada cawangan
Gunakan git push origin master --tags untuk mempunyai batang dan tag, tetapi tiada cawangan

Persoalan terakhir datang, bagaimana untuk berhijrah cawangan?

巴扎黑巴扎黑2792 hari yang lalu603

membalas semua(2)saya akan balas

  • 世界只因有你

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

    Setelah bergelut untuk masa yang lama, saya akhirnya menyelesaikannya dengan svn2git
    Idea asasnya ialah menukar cawangan terpencil kepada cawangan tempatan, dan kemudian menolak
    svn2git boleh menyelesaikannya terus

    balas
    0
  • 漂亮男人

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

     git svn clone http://myhost/repo -T trunk -b branches -t tags 
     #将svn仓库转为git仓库
     git remote add oscgit https://git.oschina.net/user/repo #添加remote,这个需要在页面上建立
     git push -u origin --all
    

    balas
    0
  • Batalbalas