如何在从svn转换为git后从分支名称中删除远程源

如何在从svn转换为git后从分支名称中删除远程源,git,svn,git-svn,Git,Svn,Git Svn,我正在尝试将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 但是,现在我只能看到这样一个分

我正在尝试将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 svn clone --trunk=/trunk --branches=/branches --tags=/tags https://svn.server.com/repos/my_repo
我真正希望得到的分支名称如下所示:

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 svn clone --trunk=/trunk --branches=/branches --tags=/tags https://svn.server.com/repos/my_repo
我已经尝试研究git过滤器分支,但我不确定这是否正是我想要的。我还尝试更手动地指定布局,如下所示:

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 svn clone --trunk=/trunk --branches=/branches --tags=/tags https://svn.server.com/repos/my_repo
但这也不起作用。它在每个分支名称之前都给出了与
origin/
相同的结果。我只是想知道是否有可能在不重新克隆整个回购协议的情况下更改这些分支名称

下面是运行
git分支-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
可以添加

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

它可以变得更漂亮,但它完成了任务,并显示您可以重命名分支。

当您运行
git branch-a
时,您看到了什么?您可以编辑您的问题并包含此问题的输出吗?您可以像这样重命名一个分支
git branch-m old\u name new\u name
,或者通过省略old\u name来重命名您所在的分支。如果愿意,可以在已经使用的同一个循环中使用。这是一个解决方案吗?添加了git branch-a的输出。我想知道我是否只需要做一个简单的重命名,但它会保留历史吗?@Mr.Christer您的解决方案对我有效。我使用awk剥离
原点/
,但我能够用您的命令重命名所有分支,然后正确地推送它们。谢谢大家!@用户3270760太棒了!我用sed而不是awk添加了一个解决方案,但想法是一样的。如果你认为它是可行的,就把它标记为一个答案。非常感谢。