我在文件夹A(这是一个git项目)中有一些php文件.在这些php文件中,我想执行"git log"但是对于文件夹B.文件夹B是另一个git项目(因此A和B之间的日志不同).
我怎么能用shell命令做到这一点?
rgn*_*ngl 169
来自man git:
--git-dir在传递任何命令之前,您可以使用参数执行此操作.
git --git-dir /foo/bar/.git log
Run Code Online (Sandbox Code Playgroud)
(必须指定.git目录.)从文档中:
--git-dir=<path>设置存储库的路径.这也可以通过设置
GIT_DIR环境变量来控制.它可以是当前工作目录的绝对路径或相对路径.
Von*_*onC 129
使用git 1.8.5(2013年第4季度),您将有另一种选择,而不是设置--git-dir.
如果要git log在文件夹中执行B,请键入:
git -C B log
Run Code Online (Sandbox Code Playgroud)
就像"
make -C <directory>","git -C <directory> ..."告诉Git在做任何其他事情之前去那里.
在不离开当前目录的情况下,需要更多的按键才能在不同的目录中调用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上面显示的方法对于脚本编写是可接受的,但对于快速命令行调用来说太麻烦了.
使用这个新选项,可以用更少的击键完成上述操作:
git -C ~/foo statusgit -C ../.. grep foofor d in d1 d2 d3; do git -C $d svn rebase; done
所有可能的选项:
-C <path>:运行命令,就像 git 在 中启动一样<path>。--git-dir=<path>:设置“.git”目录的路径。--work-tree=<path>:设置工作树的路径。通常,-C这是大多数人想要的。对于其他用途,请考虑将上述内容结合起来。
| 归档时间: |
|
| 查看次数: |
33639 次 |
| 最近记录: |