脚本获取Git工作目录根目录?

4

可能是重复问题:
有没有一种方法可以使用一个命令获取git根目录?

我正在编写一个bash脚本(实际上是一个Makefile),需要使用一个参数,该参数是相对于包含当前目录的git工作目录的根目录的目录。

也就是说:

 /home/me$ git clone /abc/foo.git

 directory foo created

 /home/me$ cd foo/bar

 /home/me/foo/bar$ execute_script.sh

 hello /home/me/foo/baz

execute_script.sh的内容如下:

 echo hello `git something`/baz

什么是Git?它应该返回当前Git工作根目录的绝对路径。
2个回答

12

嗯,如果你知道你将要进入"bar"文件夹,你可以尝试:

echo hello `pwd`/../baz

编辑:正如@Andrew Tomazos早些时候在另一个帖子中指出的,你可以这样做

echo hello `git rev-parse --show-toplevel`/baz

1

1
如果你在 git worktree 中,这个答案实际上是不起作用的。使用 git rev-parse --show-toplevel 在我尝试的所有情况下似乎都有效。 - staktrace

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接