我正在尝试将svn存储库转换为git,通过执行以下操作,我已基本完成了我所需的工作:
git svn init https://svn.server.com/repos/my_repo --stdlayout
git svn fetch
我还找到了一种将所有SVN分支转换为本地Git分支的方法:
for branch in `git branch -r | grep -v tags`; do
git branch $branch $branch
done
但是,现在我陷入了像这样的分支列表:
origin/1.3
origin/1.4
origin/1.5
origin/1.6
origin/1.7
origin/1.8
origin/2.0
我最终想要得到的是看起来像这样的分支名称:
1.3
1.4
1.5
1.6
1.7
1.8
2.0
我已经尝试研究git filter-branch,但是我不确定这是否正是我想要的。我还尝试像这样更手动地指定布局:
git svn clone --trunk=/trunk --branches=/branches --tags=/tags https://svn.server.com/repos/my_repo
但是这也不起作用。在每个分支名称之前,它与origin/
的结果相同。我只是想知道是否可以更改这些分支名称,而不必再次重新克隆整个存储库。
以下是运行git branch -a
的输出:
git branch -a
* master
origin/1.3
origin/1.4
origin/1.5
origin/1.6
origin/1.7
origin/1.8
origin/2.0
答案 0 :(得分:1)
可以添加
git branch -m old_name new_name
进入循环,以便bash脚本的一部分变为
for branch in `git branch -r | grep -v tags`; do
new_branch=$(echo $branch | sed 's/origin\///')
git branch $branch $branch
git branch -m $branch $new_branch
done
可以使其更漂亮,但可以完成工作并显示可以重命名分支。