从另一个文件夹执行 git “log” 方法

我在目录 A中。如何为目录 B中的 git 存储库执行 git log

59828 次浏览

来自 man git:

在传递任何命令之前,可以使用 --git-dir参数执行此操作。

git --git-dir /foo/bar/.git log

(需要指定 .git目录)来自 文件:

--git-dir=

设置存储库的路径。这也可以通过设置 GIT_DIR 环境变量来控制。它可以是当前工作目录的绝对路径或相对路径。

对于 Git 1.8.5(2013年第4季),您将有另一个选择,而不是设置 --git-dir
如果要在文件夹 B中执行 git log,请键入:

git -C B log

就像“ make -C <directory>”和“ git -C <directory> ...”告诉 Git 在做其他事情之前先去那里”。


犯罪,第四季,第4集 by 纳兹里 · 拉姆利(Nazri Ramliy):

在不离开工作目录的情况下,在另一个目录中调用 git 命令需要更多的按键:

  1. (cd ~/foo & & git status)
    Git —— git-dir = ~/foo/. git —— work-tree = ~/foo status
    GIT _ DIR = ~/foo/. GIT GIT _ WORK _ TREE = ~/foo GIT status
  2. (cd ../..; git grep foo)
  3. for d in d1 d2 d3; do (cd $d && git svn rebase); done

上面显示的方法对于脚本来说是可以接受的,但是对于快速命令行调用来说太麻烦了。

使用这个新选项,可以通过更少的击键来完成以上操作:

  1. git -C ~/foo status
  2. git -C ../.. grep foo
  3. for d in d1 d2 d3; do git -C $d svn rebase; done

所有可能的选择:

通常,-C是大多数人想要的。对于其他用途,考虑结合以上。