我正在尝试从 TFVC(Visual Studio Team Services)迁移到 git(通过 Visual Studio Team Services 托管)。我已经能够构建一个脚本来迁移所有的东西、分支、做一些清理等。 我使用了 git tfs ( https://github.com/git-tfs/git-tfs/blob/master/doc/usecases/migrate_tfs_to_git.md ) 和一些在线博客文章。
一切都像一个魅力,除了当我尝试清理提交消息时,我使用文档中的命令得到“致命:错误修订 s/^git-tfs-id:.*$//g”
git filter-branch -f --msg-filter 'sed "s/^git-tfs-id:.*$//g"' -- --all
我一直在尝试使用正则表达式,但它并没有解决问题。在网上搜索了很多之后,我仍然不明白为什么它不能正常工作。 我在 Windows 命令行(最新版本)中使用 git,我对 git 的了解非常基础,但我找不到任何替代方法来实现我想做的事情。
感谢您的帮助!
最佳答案
终于找到了真正的问题所在...报价问题
git filter-branch -f --msg-filter 'sed "s/git-tfs-id:.*//gm"' -- --all
不起作用
git filter-branch -f --msg-filter "sed 's/git-tfs-id:.*//gm'"-- --all
作品
我猜windows命令行引号的解释和Git virtual bash之间存在兼容性问题。
无论如何感谢@Giuseppe Ricupero 的帮助!
关于regex - git 过滤器分支致命修订,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34680353/