可能重复:
有没有办法在一个命令中进入 git 根目录?
有时,我对 git 感到困惑,以为我在 Git 工作目录中,但对我来说顶层工作目录(包含.git/
)是什么并不明显。(很可能,该 repo 是由错误创建的。)
那么,如果我在子目录中的某个地方,如何找到顶级 Git 存储库目录?我如何要求git
打印它认为当前顶级工作目录是什么?
可能重复:
有没有办法在一个命令中进入 git 根目录?
有时,我对 git 感到困惑,以为我在 Git 工作目录中,但对我来说顶层工作目录(包含.git/
)是什么并不明显。(很可能,该 repo 是由错误创建的。)
那么,如果我在子目录中的某个地方,如何找到顶级 Git 存储库目录?我如何要求git
打印它认为当前顶级工作目录是什么?
试试这个:
git rev-parse --show-toplevel
我编写了一个简单的脚本(我的“ git-shortcuts ”集合中的 git-find-git-dirs)来方便地对 Git 进行此类查询:
#!/bin/bash
# find-git-dirs -- A simple script to "find" (i.e., "print") the GIT_DIR, as assumed by Git. (Useful if you are in a subdir, and you are not sure about the top-level repo dir.)
SUBDIRECTORY_OK=yes
. "$(git --exec-path)/git-sh-setup"
echo "GIT_DIR=$GIT_DIR"
并将其放入~/bin/
;现在我可以像这样进行简单的查询:
$ git find-git-dirs
GIT_DIR=/home/imz/.git
GIT_WORK_TREE=
$
我从最初的问题中唯一缺少的是打印顶级工作目录,现在它只打印内部 git repo 目录的路径......