我已经看过this question,它告诉我们如何获取相对于git repo根目录的特定文件的路径。但我现在想要获取当前目录的路径,而不是特定文件。如果我使用
git ls-tree --full-name --name-only HEAD .
我获取目录中所有文件的列表。
这可能吗?
答案 0 :(得分:20)
怎么样:
$ git rev-parse --show-prefix
来自man git-rev-parse
:
--show-prefix
When the command is invoked from a subdirectory, show
the path of the current directory relative to the top-level
directory.
答案 1 :(得分:0)
从Arkadiusz Drabczyk添加到great answer时,我只是将建议的命令包装在Shell脚本中(称为rd.sh,代表“相对目录”或“存储库目录”),并使其显示为“ /”(如果git rev-parse --show-prefix
命令不返回任何内容(在顶层)。我现在才开始使用它,所以我们将看看它是如何工作的!
#!/bin/bash
# rd.sh: shows the "repository directory" rather than the entire absolute dir from 'pwd'
RELATIVE_DIR=`git rev-parse --show-prefix`
if [ -z "$RELATIVE_DIR" ]; then
echo "/"
else
echo $RELATIVE_DIR
fi
答案 2 :(得分:-1)
#git ls-files --full-name | xargs -L1 dirname | sort -u
使用上面的git rev-parse --show-prefix
,真棒