我是使用CLI使用Git的忠实粉丝,但我发现需要文件名的任务有点麻烦。我想到了嵌套在许多文件中的diff
和单文件签出等任务。
我正在编写别名以通过使用Bash别名来完成此操作。以下是使用更改索引进行区分的示例 -
# allows diffing using file index rather than relative path
gdiff() {
f=`git status -s | sed $1'q;d' | cut -d' ' -f3`
git diff $f
}
这样,我可以执行git diff my/super/duper/long/secret/path/app.py
而不是gdiff 1
{假设文件app.py
是git status
中返回的第一个文件)。我通常使用的每个需要文件名的函数都有别名。
Git是否提供了内置的方法来实现这一目标?
答案 0 :(得分:3)
无需包装git diff
或其他git
命令;您只想分析从git status
检索文件名的过程。
file_by_num () {
git status -s | sed $1'q;d' | cut -d' ' -f3
}
git diff "$(file_by_num 1)"
git checkout "$(file_by_num 3)"
# etc