可能重复:
有没有一种方法可以在一个命令中进入git根目录?
有时,我会误以为自己在Git工作目录中,但不明显的是该目录的顶级工作目录(包含.git/
)。 (可能是因为该仓库创建时出现了错误。)
那么,如果我在子目录中,如何找出顶级Git仓库目录呢?我怎样向git
询问它认为当前的顶级工作目录是什么?
可能重复:
有没有一种方法可以在一个命令中进入git根目录?
有时,我会误以为自己在Git工作目录中,但不明显的是该目录的顶级工作目录(包含.git/
)。 (可能是因为该仓库创建时出现了错误。)
那么,如果我在子目录中,如何找出顶级Git仓库目录呢?我怎样向git
询问它认为当前的顶级工作目录是什么?
试试这个:
git rev-parse --show-toplevel
#!/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-rev-parse
-- 因为它的名称暗示它是关于处理修订规范的。顺便说一句,我很高兴看到git --work-tree
的工作方式类似于git --exec-path[=<path>]
:"如果没有给出路径,git 将打印当前设置";至少,在我看来,这将是寻找此功能的一个逻辑位置。 - imz -- Ivan Zakharyaschev.git
目录内部,则会失败。有关解决方案,请参见标记的重复内容。 - Tom Halegit rev-parse --show-cdup
更适合你。无论如何,在服务器上报告的绝对路径不正确是很奇怪的... - imz -- Ivan Zakharyaschev