Maison > Questions et réponses > le corps du texte
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 ?
世界只因有你2017-05-02 09:25:00
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
漂亮男人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