这可能是一个奇怪的问题,但我想覆盖ls
when 在 git 目录中的行为。
我想从上次提交中提取一些差异统计信息,并将其附加到ls
. 在git项目的根目录下,我想做这样一个特定的提示:
app/
test/
.gitignore
test.py
run.py
README.md
+ 11 lines
- 3 lines
Last commit: "add a new test for deployment" (Oct 14, 2014)
当比根更深时,我想创建一个这样的提示(比如我 cd 到test/
然后使用ls
命令):
test/
├── __init__.py
├── test_deploy.py
└── test_add_user.py (+3 lines since last commit)
奖励点:加号/减号线的彩色绿色/红色和 git 信息上漂亮的统一制表符。
如何实现?
首先,为了创建自定义
ls
,最简单的方法是按以下步骤进行:$HOME/bin
添加
$HOME/bin
到您的PATH
. 为此,请~/.bashrc
在您喜欢的文本编辑器中打开该文件,并将以下行添加到末尾:请注意,在您的前面加上前缀很重要,这样 那里的可执行文件将优先于您的其他同名可执行文件(例如,在您的情况下,命令)
$HOME/bin
PATH
PATH
ls
$HOME/bin/ls
我将在下面发布的内容的文件。chmod 755 $HOME/bin/ls
.其次,你的 new
$HOME/bin/ls
应该像这样:它检查当前目录是否是一个 git 存储库,并且/bin/ls
可执行文件。我很快为您编写了这样一个脚本。它绝不是完美的,但它应该非常接近您想要的,并且您可以轻松地从那里开始工作。:-)
演示
注意:输出的颜色很漂亮,但很明显这里不会显示。