如何执行需要文件名的任务

时间:2015-05-06 15:30:56

标签: git

我是使用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.pygit status中返回的第一个文件)。我通常使用的每个需要文件名的函数都有别名。

Git是否提供了内置的方法来实现这一目标?

1 个答案:

答案 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