从" git bash"中检索回购路径从窗口格式正确

时间:2018-05-29 08:41:43

标签: windows git git-bash

我正在尝试从" git bash"中检索存储库的路径。 windows中的shell,如下所示

user@CND7293ZVV MINGW64 /c/Work/git/repository/subfolder (master)
$ git rev-parse --show-toplevel
C:/Work/git/repository

问题是我想使用ouptut路径从bash脚本中使用它,但它不是bash格式。我想得到/c/Work/git/repository。有没有办法以可以直接在git bash shell中使用的方式获取路径?

额外信息:目标是将该路径存储在bash脚本中使用的变量中,无论我是从linux终端运行bash,还是从git bash运行。

更新

为了能够在git-bash环境中使用命令,以及在native linux bash中,我们可以使用以下命令:

REPODIR=$(git rev-parse --show-toplevel) 
# If we are inside mingw* environment, then we update the path to proper format
if [[ $(uname) == MINGW* ]] ; then REPODIR=$(cygpath -u "${REPODIR}"); fi; echo ${REPODIR}

1 个答案:

答案 0 :(得分:2)

在Git bash命令行上运行时,您有一个名为cygpath的buildin实用程序可以执行此操作:

$ cygpath -u "C:/Work/git/repository"
/c/Work/git/repository

这可以与现有命令结合使用,在1行上完成所有操作:

$ cygpath -u "$(git rev-parse --show-toplevel)"
/c/Work/git/repository