Git命令查看active GIT_DIR在哪里



由于git命令可以从repo的任何子目录运行,甚至可以从repo的目录层次结构之外运行,因此我正在寻找一个git命令,它将显示repo的位置。实际上,repo的.git/目录的父目录。

例如,如果我有如下的目录结构,我希望命令的输出是/Users/gurjeet/dev/project_repo/,对于示例目录树后面显示的所有命令。

/Users/gurjeet/
├── some_directory/
└── dev/
└── project_repo/
├── .git/
└── src/
$ cd /Users/gurjeet/dev/project_repo
$ git --where-is-.git
$ cd /Users/gurjeet/dev/project_repo/src
$ git --where-is-.git
$ cd /Users/gurjeet/dev/
$ export GIT_DIR='/Users/gurjeet/dev/project_repo/src'
$ git --where-is-.git
$ cd /Users/gurjeet/dev/
$ export GIT_DIR='/Users/gurjeet/dev/project_repo/src'
$ git --where-is-.git
$ cd /tmp
$ export GIT_DIR='/Users/gurjeet/dev/project_repo/src'
$ git --where-is-.git

我相信我正在寻找的是由git rev-parse --absolute-git-dir提供的,或者更准确地说是由以下命令提供的:

$ dirname $(GIT_DIR=~/dev/POSTGRES/.git git rev-parse --absolute-git-dir)

几个示例运行:

$ cd ~/dev/Q.HT/public/quote_of_the_day
$ dirname $(GIT_DIR=~/dev/POSTGRES/.git git rev-parse --absolute-git-dir)
/Users/gurjeet/dev/POSTGRES
$ cd ../../../POSTGRES/
$ dirname  $(GIT_DIR=~/dev/POSTGRES/.git git rev-parse --absolute-git-dir)
/Users/gurjeet/dev/POSTGRES
$ cd src
$ dirname  $(GIT_DIR=~/dev/POSTGRES/.git git rev-parse --absolute-git-dir)
/Users/gurjeet/dev/POSTGRES

一些Google foo引导我获得git别名运行的路径,这导致我阅读git rev-parse --help,其中有我需要的所有信息。

最新更新