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

时间:2010-09-22 12:22:24

标签: git

我在文件夹A中有一些php文件(这是一个git项目)。在这些php文件中,我想执行“git log”但是对于文件夹B.文件夹B是另一个git项目(因此A和B之间的日志不同)。

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

2 个答案:

答案 0 :(得分:152)

来自,man git

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

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

(必须指定.git目录。)来自documentation

  

--git-dir=<path>

     

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

答案 1 :(得分:116)

使用git 1.8.5 (Q4 2013),您将有另一种选择,而不是设置--git-dir 如果要在文件夹git log中执行B,请输入:

git -C B log
  

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


通过 commit 44e1e4

查看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.   
  3. (cd ../..; git grep foo)
  4.   
  5. for d in d1 d2 d3; do (cd $d && git svn rebase); done
  6.         

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

         

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

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