windows - 保持功能分支与 "develop"分支同步的别名

标签 windows git bash msysgit git-config

我做了一些搜索,发现这个别名可以使功能分支与开发分支保持同步,这在我从 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 上工作吗?

谢谢

最佳答案

\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

关于windows - 保持功能分支与 "develop"分支同步的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18538258/

相关文章:

windows - TortoiseGit:回到以前的版本

c++ - windows xp 修改时区

php - MySQL 外键约束在 Linux 服务器上失败,但在 Windows XAMPP 上有效

node.js - 在git中正确跟踪yarn的node_modules目录

Bash 以声明方式定义要循环的列表

node.js - Electron 更新程序的功能quitAndInstall

git - 无法推送到 GitHub 上的远程存储库

gitignore:了解 "hello/"与 "hello/*"

linux - echo 不在 bash 中打印变量

bash - 使用 awk 命令删除带有 CRLF 的重复文件