【问题标题】:Alias for keeping feature branch in sync with "develop" branch使功能分支与“开发”分支保持同步的别名
【发布时间】:2013-09-03 11:58:44
【问题描述】:

我做了一些搜索,发现这个别名是为了让功能分支与开发分支保持同步,当我手动从 Git bash 运行时,开发分支可以工作。

sync='!f() { echo Syncing this branch with develop && git checkout develop && 
git pull && git checkout – && git rebase develop; }; f'

我尝试将此别名放在 .gitconfig 中,但出现以下错误

error: pathspec '"\342\200\223"' did not match any file(s) known to git.

我发现的是 git checkout -,它代表,回到你所在的最后一个分支会产生这个错误。

我也尝试将相同的命令放在 .bashrc 中,如下所示

alias sync='echo Syncing this branch with develop && git checkout develop && git pull 
&& git checkout – && git rebase develop'

这会产生同样的错误。

但是,只是为了确保当我手动运行 Git Bash 中的所有命令时,它们都可以正常工作,所以没有其他问题。似乎这只是因为 Windows 上的 msysgit 或 bash 存在差异,因为我已经阅读了 mac 和 Linux 上 git 的这些别名工作。

有开明的人能告诉我如何更改它以使其在 Windows 上运行吗?

谢谢

【问题讨论】:

    标签: windows git bash msysgit git-config


    【解决方案1】:

    \342\200\223 是表示UTF-8 "en dash" character 的八进制字符序列:八进制342 200 223 与十六进制e2 80 93 相同。您可能从某处复制/粘贴了该命令行,而该角色让git 大吃一惊。使用 ASCII -

    也就是说,这个字符: 和这个字符:-不一样的。您需要使用后者。

    您可以通过您最喜欢的十六进制转储程序运行角色来检查。这是我的例子:

    $ echo -n – | hexdump
    0000000 e2 80 93                                       
    0000003
    $ echo -n - | hexdump
    0000000 2d                                             
    0000001
    

    【讨论】:

    • 您说的太对了,先生。我确实复制粘贴了那行,当我以前手动输入 Git bash 时,它曾经可以工作。我刚刚从 .bashrc 文件中删除并手动输入了它,现在它可以工作了。非常感谢。
    • 没问题,乐于助人。
    猜你喜欢
    • 1970-01-01
    • 2013-11-14
    • 2013-02-15
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 2022-08-24
    • 1970-01-01
    • 2022-11-19
    相关资源
    最近更新 更多