【问题标题】:git filter branch fatal revisiongit filter 分支致命修订
【发布时间】:2016-04-13 07:56:48
【问题描述】:

我正在尝试从 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

我一直在尝试使用正则表达式,但它并没有解决问题。在互联网上挖掘了很多之后,我仍然无法理解为什么它不能正常工作。 我正在使用 git for windows 命令行(最新版本),我对 git 的了解非常基础,但我找不到任何替代方法来实现我想做的事情。

感谢您的帮助!

【问题讨论】:

    标签: regex git azure-devops commit git-tfs


    【解决方案1】:

    终于找到真正的问题是什么...报价问题 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 的帮助!

    【讨论】:

    【解决方案2】:

    您尝试执行的命令依赖于外部工具:sed 可执行文件(在大多数 unix 风格上默认可用,但在 Windows 上不可用):可能您必须自己安装 sed

    从这些 un​​ix 工具包之一中获取 windows-compatible 版本的 sed

    1. UnxUtils(2013 年最新更新,中等大小)
    2. Cygwin(不断更新,如果您不介意大小,则默认选择)
    3. GnuWin32(2010 年最新更新)

    希望这会有所帮助!

    【讨论】:

    • 感谢您的回答。我认为 Git for Windows 安装会带来一些工具(也许我在安装过程中检查了一些错误?)这是否意味着我可以在技术上用一些等效的 PowerShell 替换它?
    • @baywet:这可能有效,但未经测试:git filter-branch -f --msg-filter '% { $_ -replace "^git-tfs-id:.*$","" }' -- --all
    猜你喜欢
    • 2020-09-19
    • 2016-10-06
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多