如何获取当前目录相对于git存储库根目录的路径?

时间:2016-10-07 17:15:08

标签: git bash

我已经看过this question,它告诉我们如何获取相对于git repo根目录的特定文件的路径。但我现在想要获取当前目录的路径,而不是特定文件。如果我使用

git ls-tree --full-name --name-only HEAD .

我获取目录中所有文件的列表。

这可能吗?

3 个答案:

答案 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,真棒