Menghijrahkan svn ke git, cawangan sudah tiada?
巴扎黑
巴扎黑 2017-05-02 09:23:00
0
2
602

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?

巴扎黑
巴扎黑

membalas semua(2)
世界只因有你

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

漂亮男人
 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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan