在另一个文件夹中使用git“log”命令

我有一个文件夹A(这是一个混帐项目)的一些PHP文件。 在这些PHP文件我想要执行“git日志”,但文件夹B.文件夹B是另一个git项目(所以日志是不同的A和B之间)。

我如何用shell命令做到这一点?

从, man git

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

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

随着git 1.8.5(2013年第四季度) ,你将有另一种select,而不是设置 – --git-dir
如果你想执行git log文件夹B ,input:

 git -CB log 

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


Nazri Ramliy的 提交 44e1e4

在不离开当前目录的情况下,需要更多按键来调用不同目录中的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

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

有了这个新的选项,上面的操作可以用更less的击键来完成:

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