Vous migrez svn vers git, les branches ont disparu ?
巴扎黑
巴扎黑 2017-05-02 09:23:00
0
2
620

D'après la documentation sur progit : http://git-scm.com/book/zh/v2/Git-与其他系统-迁移到-Git

J'ai rencontré deux problèmes :

Pour remplacer la balise par une balise Git appropriée, exécutez

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

Cela transformera les références de branche distantes initialement dans remotes/origin/tags/ en de véritables balises (légères).
Ensuite, déplacez les références restantes sous refs/remotes vers les succursales locales :

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

.git/refs/remotes Désormais, toutes les anciennes branches sont de véritables branches Git, et toutes les anciennes balises sont de véritables balises Git.
La dernière chose à faire est d'ajouter votre nouveau serveur Git en tant que référentiel distant et d'y accéder.

Mais lors de l'exécution de cp, il a été constaté que ce répertoire n'existe pas. git branch -r répertorie de nombreux répertoires originaux

$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

Cependant, il n'y a pas de fichier sous .git/refs/remotes/origin/tags
Référencehttp://nowing.iteye.com/blog/844608的做法,使用标准命令将branch转成tags

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

Enfin, utilisez git push origin --all pour pousser vers le serveur git, mais il n'y a que le tronc et pas de branches
Utilisez git push origin master --tags pour avoir le tronc et les balises, mais il n'y a pas de branches

.

La dernière question vient, comment migrer la branche ?

巴扎黑
巴扎黑

répondre à tous(2)
世界只因有你

Après avoir longtemps lutté, je l'ai finalement résolu avec svn2git
L'idée de base est de convertir la branche distante en branche locale, puis de pousser
svn2git peut le résoudre directement

漂亮男人
 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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal