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

如何获取当前目录相对于git存储库根目录的路径?,git,bash,Git,Bash,我已经看到了,它告诉我们如何获取特定文件相对于git repo根的路径。但是我现在想得到当前目录的路径,而不是一个特定的文件。如果我使用 git ls-tree --full-name --name-only HEAD . 我得到目录中所有文件的列表 这可能吗 #git ls-files --full-name | xargs -L1 dirname | sort -u 使用git rev parse--show prefix,awesome,怎么样 $ git rev-parse --s

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

git ls-tree --full-name --name-only HEAD .
我得到目录中所有文件的列表

这可能吗

#git ls-files --full-name  | xargs -L1 dirname | sort -u
使用git rev parse--show prefix,awesome,怎么样

$ git rev-parse --show-prefix
mangit 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.
在Arkadiusz Drabczyk的基础上,我将建议的命令包装在一个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

你是在寻找一种阅读路径的方法吗?您不想使用
pwd
命令有什么原因吗?@BrianaSwift因为我想要的是相对于git repo根的路径,而不是机器上的绝对路径。例如,如果我有一个repo位于
/home/ewok/git/repo
,并且
pwd
将打印
/home/ewok/git/repo/src/java
,我想要一个命令,它只会给我
/src/java
,这会给我当前目录,但也会递归地给我所有子目录,这并不完全正确。有时它给我当前目录,有时它只给我子目录。我不知道什么时候它能让这更好?git ls文件——全名| head-1 | xargs-L1 dirname | sort-unope。现在它只给出了一个目录,但它给出的目录似乎并不一致。
git rev parse--show prefix
是我将放在工具带中的一个命令。