如何从提交消息中删除svn url?

Bis*_*lli 2 git github git-svn

我正在尝试将git-svn repo推送到github,但我不希望url出现在我的提交消息中.

它们出现是因为我正在用svn开发并且只使用git-svn来推送到github.所以我的所有消息都是这样的:

Some changes

git-svn-id: ........
Run Code Online (Sandbox Code Playgroud)

alf*_*thz 6

如果您已经使用了git svn fetch您可以使用的数据,您可以使用它git filter-branch作为替代.

git filter-branch -f --msg-filter 'sed -e "/git-svn-id:/d" -e "/Former-commit-id:/d"'
Run Code Online (Sandbox Code Playgroud)

您可以相应地更改"git-svn-id:"或"Former-commit-id:".


Tux*_*ude 5

您可以通过设置以下配置选项(全局或每个远程)来关闭它,但强烈建议要这样做,因为git svn如果没有此元数据将无法获取.

svn.noMetadata = true
svn-remote.origin.noMetadata = true
Run Code Online (Sandbox Code Playgroud)

您也可以使用该--no-metadata选项git svn clone来获得相同的结果.

从手册页git-svn:

--no-元

在[svn-remote]配置中设置noMetadata选项.建议不要使用此选项,请在使用此选项之前阅读此联机帮助页的svn.noMetadata部分.

以及相关的配置文件选项:

svn.noMetadata

SVN-remote..noMetadata

这会在每次提交结束时删除git-svn-id:行.

此选项只能用于一次性导入,因为git svn将无法在没有元数据的情况下再次获取.此外,如果您丢失了.git/svn/*/.rev_map.文件,git svn将无法重建它们.

git svn log命令也不能在使用它的存储库上运行.使用这与useSvmProps选项冲突(希望)明显的原因.

建议不要使用此选项,因为这样很难在现有文档,错误报告和存档中跟踪对SVN修订号的旧引用.如果您计划最终从SVN迁移到git并确定要删除SVN历史记录,请考虑使用git-filter-branch(1).filter-branch还允许重新格式化元数据,以便于阅读和重写非"svn.authorsFile"用户的作者信息.