我的任务是将项目从SVN移动到Git,然后我按照https://git-scm.com/book/it/v2/Git-and-Other-Systems-Migrating-to-Git中的教程进行操作。好点:它奏效了!遗憾的是,在移动标签和分支的远程引用时,教程似乎已经过时了。
教程指出,它们存储在
中 .git/refs/remotes/origin/tags/*
但是,在我的svn clone中,此目录为空。它们似乎存储在
中 .git/svn/refs/remotes/origin/tags/*
分支相同,我希望它们在
中 .git/refs/remotes/
但在
中找到了它们 .git/svn/refs/remotes/
所以,我现在向你提出的问题是:按照教程安全,但用相应的路径替换,我找到了吗?
修改1:
假设确实安全,我将引用复制到新目的地。不幸的是,这对我不起作用:
$ git tag --list
$
即使文件夹.git/ref/tags/
不为空。在那里,我找到带有以下文件的标记命名文件夹:
-rw-r--r-- 1 delo 1049089 96 Nov 12 10:00 .rev_map.9585454d-0aa9-4b53-3453-ca0f383a6637
-rw-r--r-- 1 delo 1049089 247K Nov 12 10:00 index
-rw-r--r-- 1 delo 1049089 24 Nov 12 10:00 unhandled.log
分支相同。我想,这不应该是它应该是......
我该如何解决?
答案 0 :(得分:0)
我觉得这很安全。请注意,您可以在移动它们之前始终创建备份。
另一种方法是使用this教程中的步骤。
基本上,你可以这样做:
for tag in `git branch -r | grep "tags/" | sed 's/ tags\///'`; do
git tag -a -m"Converting SVN tags" $tag refs/remotes/$tag
done