Grumdrig Grumdrig -4 years ago 238
Git Question

Determine if directory is under git control

How can I tell if a given directory is part of a git respository?

(The following is in python, but bash or something would be fine.)


will tell you if the current directory is controlled by Subversion. Mercurial and Git just have a .hg/.git at the top of the repository, so for
I can use

os.system('hg -q stat 2> /dev/null > /dev/null') == 0)

git status
returns a nonzero (error) exit status if nothing's changed.

Is iterating up the path looking for
myself the best I can do?

Answer Source

In ruby, system('git rev-parse') will return true if the current directory is in a git repo, and false otherwise. I imagine the pythonic equivalent should work similarly.

EDIT: Sure enough:

# in a git repo, running ipython
>>> system('git rev-parse')

# not in a git repo
>>> system('git rev-parse')

Note that there is some output on STDERR when you aren't in a repo, if that matters to you.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download