GIT命令列出所有修改过的文件名

时间:2017-11-09 23:16:22

标签: git bash unix

如果我跑

df.groupby(by=['A', 'B']).agg({'x':np.sum, 'y':np.max, 'datetime':'count', 'column_z':first()})

我需要运行什么来获取我修改过的文件的名称不是整个路径)?

实施例。

$ git status | grep modified:

I got 

modified: config/express.js                                                                      
modified: package.json                                       
modified: routes/index.js
  

这是的愚蠢,express.js package.json index.js 只能修改文件吗?

我正在寻找文件名 ----不是文件路径+文件名。

4 个答案:

答案 0 :(得分:2)

这应该有效:

git diff --name-only --diff-filter=M | xargs basename

答案 1 :(得分:1)

git ls-files -m | xargs -L 1 basename

您需要xargs的-L 1参数才能为每个文件重新调用basename。否则该命令只列出一个结果

答案 2 :(得分:0)

你可以跑

git status | awk '{print $2}'

没有完整的文件名:

git status | grep modified | awk -F "/| " '{print $NF}'

可能想在中间管道grep

答案 3 :(得分:-1)

您可以像这样使用awk:

git status | grep modified | awk '{split($2, a, "/"); print a[1]}'

编辑:将:更改为;