recherche

Maison  >  Questions et réponses  >  le corps du texte

Vous migrez svn vers git, les branches ont disparu ?

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 ?

巴扎黑巴扎黑2793 Il y a quelques jours607

répondre à tous(2)je répondrai

  • 世界只因有你

    世界只因有你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

    répondre
    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
    

    répondre
    0
  • Annulerrépondre