在另一个文件夹中使用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命令:
(cd ~/foo && git status)
git --git-dir=~/foo/.git --work-tree=~/foo status
GIT_DIR=~/foo/.git GIT_WORK_TREE=~/foo git status(cd ../..; git grep foo)
for d in d1 d2 d3; do (cd $d && git svn rebase); done
上面显示的方法对于脚本来说是可以接受的,但是对于快速的命令行调用来说太麻烦了。
有了这个新的选项,上面的操作可以用更less的击键来完成:
git -C ~/foo status
git -C ../.. grep foo
for d in d1 d2 d3; do git -C $d svn rebase; done