Created
February 7, 2012 17:33
-
-
Save igniteflow/1760854 to your computer and use it in GitHub Desktop.
GitPython get current active branch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Gets the name of the active Git branch as a string. | |
Depends on GitPython | |
pip install GitPython | |
""" | |
from git import Repo | |
repo = Repo('/path/to/your/repo') | |
branch = repo.active_branch | |
print branch.name | |
""" | |
Example usage from my local Django settings: | |
try: | |
# use the develop database if we are using develop | |
import os | |
from git import Repo | |
repo = Repo(os.getcwd()) | |
branch = repo.active_branch | |
branch = branch.name | |
if branch == 'develop': | |
DATABASES['default']['NAME'] = 'myproject__develop' | |
except ImportError: | |
pass | |
""" |
Any standard way to retrieve the default branch of the repository instead of current active branch?
AFAK, no off-the-shelf API in GitPython 3.1.17, here is a workaround:
def get_default_branch(self):
print("Fetching remote for default branch...")
lines = self.repo.git.remote('show', self.git_url)
print(lines)
lines = lines.split("\n")
default_branch = ''
for line in lines:
if "HEAD branch" in line:
default_branch = line.split(":")[1].strip()
break
if default_branch == "":
default_branch = "master"
print("Default branch: " + default_branch)
return default_branch
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Any standard way to retrieve the default branch of the repository instead of current active branch?