是的:
git rev-parse --show-toplevel
如果要直接复制 Git 命令,可以创建一个别名:
git config --global alias.root 'rev-parse --show-toplevel'
现在git root
将像hg root
一样起作用。
注:在一个子模块,这将显示该子模块的根目录下,而不是父库。如果您使用的 Git> = 2.13 或更高版本,则子模块可以通过一种方式显示超级项目的根目录。如果您的 git 早于该版本, 请参阅其他答案。
git-config
的man
页(在Alias下)说:
如果别名扩展名带有感叹号作为前缀,它将被视为 shell 命令。 [...] 注意,shell 命令将从存储库的顶级目录执行,该目录不一定是当前目录。
因此,在 UNIX 上,您可以执行以下操作:
git config --global --add alias.root '!pwd'
--show-toplevel
是最近才添加到git rev-parse
还是为什么没有人提及它?
从git rev-parse
手册页:
--show-toplevel
Show the absolute path of the top-level directory.