如何修剪git-svn存储库以删除分支和标记而不重新克隆?

时间:2016-10-10 19:43:43

标签: git git-svn

如果我忘了只检查SVN存储库的trunk而是检查了所有内容,有没有办法在之后修剪我的git-svn存储库而不用重新克隆它?

1 个答案:

答案 0 :(得分:2)

您必须使用myplaintext_fixed.txt" with thegit filter-branch来更改存储库历史记录,以便仅包含主干更改,并且位于目录的根目录,如subdirector-filter

您还必须更改提交消息(例如,使用git filter-branch --subdirectory-filter trunk在同一filter-branch次运行中,将msg-filter包含在/trunk元数据中,并存储在提交git-svn

等消息

然后,您必须将git filter-branch --subdirectory-filter trunk --msg-filter 'sed s!/project@!/project/trunk@!'中的git配置值svn-remote.svn.url更改为仅git config -e同步trunk

您还必须通过/trunk更新git-svn远程参考。

最后但并非最不重要的是,您需要通过删除git update-ref refs/remotes/git-svn master来删除git-svn将重建的一些元数据。

毕竟这应该是你想要的,我只是尝试了一个小测试库。