【发布时间】:2025-12-31 21:50:01
【问题描述】:
这是场景:
- 我将我的颠覆主干复制到标签“A”中。
- 然后我从本地存储库中运行“git svn fetch”,该存储库找到了分支点并将其添加为远程分支“svn/tags/A”。
- 后来我从 subversion 中删除了标签“A”,然后再次运行 'git svn fetch'。
- 我执行了“git branch -rd svn/tags/A”来从本地存储库中删除悬空的远程分支。
- 在后来的交汇处,我在我的 subversion 存储库中创建了一个名为“A”的新标签。 'git svn fetch' 找到了分支点,但问题出在:
我的本地 git 存储库认为 'svn/tags/A' 指向已删除分支中的旧提交。我在 '.git/svn/svn/tags' 中发现了一些对 'A' 的引用,也许他们在搞砸我。但是当我在运行 'git svn fetch' 之前启动另一个 git 存储库并删除这些文件时,我仍然会得到 'svn/tags/A' 指向错误的提交。
有什么方法可以清除远程 subversion 分支并将其重新读取到我的本地 git 存储库中?
编辑:我已经让它工作了,但我不太确定它的机制。
我将'.git/svn/svn/tags'中的引用移到分支'A',然后执行'git svn reset -r 1000',其中r1000是我分支点之前的提交。然后又做了一个 'git svn fetch',看起来它有效。
'svn/tags/A' 现在指向新的提交。
【问题讨论】: