Bash - 仅从 git 状态获取目录名称
Bash - Get only directory names from git status
我只需要 git 状态的目录名称。作为我使用 git status -s
时的缩写形式,我得到以下输出。
M stack/pipeline.yaml
?? stackother/
而我只需要 stack/
和 stackother/
作为一个列表或者只是作为一个输出,我可以通过管道传递到下一组命令。
基本上,我需要新创建的目录或文件有一些变化的目录。有什么方法可以使用 git 来实现吗?
编辑:
我实际上需要每个更改文件的父目录,例如以下示例:
stack/pipeline.yaml
stack/newstack/master-pipeline.yaml
stack/newstack/test/test11.txt
stack/newstack/test/tester.txt
我明白了
stack
stack/newstack
stack/newstack/test
而不是
stack
因此这个问题不是链接问题的重复。对于基本示例,瓷器的答案有效,但要进行更多更改,我必须执行 git status -s -uall
并处理此输出。
您可以按照以下方式进行:
git status -s -uall | awk '{print }' | xargs -L1 dirname| uniq
我只需要 git 状态的目录名称。作为我使用 git status -s
时的缩写形式,我得到以下输出。
M stack/pipeline.yaml
?? stackother/
而我只需要 stack/
和 stackother/
作为一个列表或者只是作为一个输出,我可以通过管道传递到下一组命令。
基本上,我需要新创建的目录或文件有一些变化的目录。有什么方法可以使用 git 来实现吗?
编辑: 我实际上需要每个更改文件的父目录,例如以下示例:
stack/pipeline.yaml
stack/newstack/master-pipeline.yaml
stack/newstack/test/test11.txt
stack/newstack/test/tester.txt
我明白了
stack
stack/newstack
stack/newstack/test
而不是
stack
因此这个问题不是链接问题的重复。对于基本示例,瓷器的答案有效,但要进行更多更改,我必须执行 git status -s -uall
并处理此输出。
您可以按照以下方式进行:
git status -s -uall | awk '{print }' | xargs -L1 dirname| uniq