没有换行符,Git 别名无法回显

标签 git

我正在尝试创建以下 git 别名:

stat = "!stat() { echo -n Number of revisions:; git log --oneline | wc -l;}; stat"

但是输出是错误的:

> git stat
-n Number of revisions:
    5917

我想要的输出是这样的:

> git stat
Number of revisions: 5917

-n 选项不起作用是否正常? 它在命令行上执行。

我使用的是 git 版本 2.5.0。

最佳答案

好的。我找到了!

似乎 git 别名默认使用 sh 而不是 bash。

在我的操作系统上,sh 不支持 -n,但 bash 支持。 所以诀窍是告诉 git 使用 bash 而不是 sh。 ( http://blogs.atlassian.com/2014/10/advanced-git-aliases/ )

使用 bash 的 -c 选项,我可以获得所需的输出。 这是我现在的工作别名:

stat = "!/bin/bash -c 'stat() { echo -n Number of revisions:; git log --oneline | wc -l;}; stat'"

关于没有换行符,Git 别名无法回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32607416/

相关文章:

ruby-on-rails - 将数据和模式从开发 rails 迁移到生产 rails heroku

javascript - 如何构建 sails.js 离线文档?

git - 如何在 Heroku 上更改应用程序的 git url

node.js - gulp 找不到模块 'readable-stream/transform'

node.js - 调用 git Shortlog -sn 时, Node child_process spawn 挂起

git - 服务器损坏后,仅使用本地副本是否可以恢复远程 git 存储库?

git - 如何在一个工作目录中使用两个 SVN 项目和相应的 git-svn 分支?

git - 如何在没有 .gitignore 或全局设置的情况下忽略 Git 存储库中的文件?

git - 推荐的 Git 持续集成系统?

windows - git commit 以 emacs 作为 Windows 下的编辑器