Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use git "log" command in another folder

Tags:

git

People also ask

How do I change directory in git directory?

To change this current working directory, you can use the "cd" command (where "cd" stands for "change directory").

What is inside .GIT folder?

The . git folder contains all information that is necessary for the project and all information relating commits, remote repository address, etc. It also contains a log that stores the commit history. This log can help you to roll back to the desired version of the code.

How do I run a git command?

All you have to do is load Command Prompt (Load the Start menu, then click "Run", type cmd and hit enter), then you can use Git commands as normal.


From, man git:

You can do this with the --git-dir parameter, before passing any commands.

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

(Specifying the .git directory is necessary.) From the documentation:

--git-dir=<path>

Set the path to the repository. This can also be controlled by setting the GIT_DIR environment 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 --git-dir.
If you want to execute git log in folder B, type:

git -C B log

Just like "make -C <directory>", "git -C <directory> ..." tells Git to go there before doing anything else.


See commit 44e1e4 by Nazri Ramliy:

It takes more keypresses to invoke git command in a different directory without leaving the current directory:

  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

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:

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