Use git “log” command in another folder
I have some php files in a Folder A (which is a git project). In these php file I want to execute “git log” but for the folder B. Folder B is another git project (so log is different between A and B).
How I can do that with shell command ?
You can do this with the
--git-dir parameter, before passing any commands.
git --git-dir /foo/bar/.git log
.git directory is necessary.) From the documentation:
Set the path to the repository. This can also be controlled by setting the
GIT_DIRenvironment variable. It can be an absolute path or relative path to current working directory.
With git 1.8.5 (Q4 2013), you will have another choice, instead of setting
If you want to execute
git log in folder
git -C B log
Just like “
make -C <directory>“, “
git -C <directory> ...” tells Git to go there before doing anything else.
It takes more keypresses to invoke git command in a different directory without leaving the current directory:
(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
The methods shown above are acceptable for scripting but are too cumbersome for quick command line invocations.
With this new option, the above can be done with fewer keystrokes:
git -C ~/foo status
git -C ../.. grep foo
for d in d1 d2 d3; do git -C $d svn rebase; done
- Database Administration Tutorials
- Programming Tutorials & IT News
- Linux & DevOps World
- Ebook Reviews
- PES Matches, Skills & News