本文整理汇总了Python中git.Git.branch方法的典型用法代码示例。如果您正苦于以下问题:Python Git.branch方法的具体用法?Python Git.branch怎么用?Python Git.branch使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类git.Git
的用法示例。
在下文中一共展示了Git.branch方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: branches
# 需要导入模块: from git import Git [as 别名]
# 或者: from git.Git import branch [as 别名]
def branches():
g = Git(PROJECT_DIR)
send('重新获取远程分支中.....')
g.fetch(REMOTE_NAME)
send('获取成功')
branch_names = g.branch('-a').split('\n')
return jsonify(branch_names)
示例2: __init__
# 需要导入模块: from git import Git [as 别名]
# 或者: from git.Git import branch [as 别名]
def __init__(self):
# Prevent working as root
uname = puke.utils.env.get("PUKE_OS", puke.system.uname).lower()
id = puke.utils.env.get("PUKE_LOGIN", puke.system.login)
if id == "root":
puke.display.error("Root detected! Panic!")
puke.log.critical(
"Running puke as root without a PUKE_LOGIN is frown upon")
# Load chained config files
r = Config(
{}, "~/.pukerc", ["package.json", "package-%s-%s.json" % (id, uname)])
self.man = r
r = r.content
# Map to older format for lazyness reasons :)
clean = re.sub('[.]git$', '', r.repository["url"])
r.package = {
"name": r.name,
"version": r.version
}
r.rights = {
"license": '<a href="%s">%s</a>' % (r.licenses[0]["url"], r.licenses[0]["type"]),
"copyright": 'All rights reserved <a href="http://www.webitup.fr">copyright %s</a>' % r.author,
"author": r.author
}
r.git = {
"root": '%s/blob/master/src' % clean
}
r.paths = r.directories
r.config = r.config
# Git in the yanks
try:
g = Git()
r.git.root = r.git.root.replace(
'/master/', '/%s/' % g.branch())
r.git.revision = '#' + g.nb() + '-' + g.hash()
except:
r.git.revision = '#no-git-information'
puke.display.warning(
"FAILED fetching git information - locations won't be accurate")
for (key, path) in r.paths.items():
puke.fs.mkdir(path)
self.config = r
# Bower wrapping
try:
self.bower = Bower(self.config.bower)
except Exception as e:
puke.sh.npm.install()
self.bower = Bower(self.config.bower)
示例3: branch
# 需要导入模块: from git import Git [as 别名]
# 或者: from git.Git import branch [as 别名]
def branch(branch_name):
# branch_name = 'remotes/ssh/' + branch_name
g = Git(PROJECT_DIR)
send('重新获取远程分支中.....')
g.fetch(REMOTE_NAME)
send('获取成功')
branch_names = g.branch('-a').split('\n')
branch_names = [_.strip() for _ in branch_names]
if branch_name not in branch_names:
return '你的这个branch啊,鹅母鸡鸭'
try:
send('重置分支')
g.reset('--hard')
send('切换分支中')
g.checkout(branch_name)
send('切换分支完成')
except Exception as e:
return str(e)
return branch_name
示例4: GitFlow
# 需要导入模块: from git import Git [as 别名]
# 或者: from git.Git import branch [as 别名]
class GitFlow(object):
"""
Creates a :class:`GitFlow` instance.
:param working_dir:
The directory where the Git repo is located. If not specified, the
current working directory is used.
When a :class:`GitFlow` class is instantiated, it auto-discovers all
subclasses of :class:`gitflow.branches.BranchManager`, so there is no
explicit registration required.
"""
def _discover_branch_managers(self):
managers = {}
for cls in itersubclasses(BranchManager):
# TODO: Initialize managers with the gitflow branch prefixes
managers[cls.identifier] = cls(self)
return managers
def __init__(self, working_dir='.'):
# Allow Repos to be passed in instead of strings
self.repo = None
if isinstance(working_dir, Repo):
self.working_dir = working_dir.working_dir
else:
self.working_dir = working_dir
self.git = Git(self.working_dir)
try:
self.repo = Repo(self.working_dir)
except InvalidGitRepositoryError:
pass
self.managers = self._discover_branch_managers()
self.defaults = {
'gitflow.branch.master': 'master',
'gitflow.branch.develop': 'develop',
'gitflow.prefix.versiontag': '',
'gitflow.origin': 'origin',
}
for identifier, manager in self.managers.items():
self.defaults['gitflow.prefix.%s' % identifier] = manager.DEFAULT_PREFIX
def _init_config(self, master=None, develop=None, prefixes={}, names={},
force_defaults=False):
for setting, default in self.defaults.items():
if force_defaults:
value = default
elif setting == 'gitflow.branch.master':
value = master
elif setting == 'gitflow.branch.develop':
value = develop
elif setting.startswith('gitflow.prefix.'):
name = setting[len('gitflow.prefix.'):]
value = prefixes.get(name, None)
else:
name = setting[len('gitflow.'):]
value = names.get(name, None)
if value is None:
value = self.get(setting, default)
self.set(setting, value)
def _init_initial_commit(self):
master = self.master_name()
if master in self.repo.branches:
# local `master` branch exists
return
elif self.origin_name(master) in self.repo.refs:
# the origin branch counterpart exists
origin = self.repo.refs[self.origin_name(master)]
branch = self.repo.create_head(master, origin)
branch.set_tracking_branch(origin)
elif self.repo.heads:
raise NotImplementedError(
'Local and remote branches exist, but neither %s nor %s' % (
master, self.origin_name(master)
))
else:
# Create 'master' branch
info('Creating branch %r' % master)
c = self.repo.index.commit('Initial commit', head=False)
self.repo.create_head(master, c)
def _init_develop_branch(self):
# assert master already exists
assert self.master_name() in self.repo.refs
develop = self.develop_name()
if develop in self.repo.branches:
# local `develop` branch exists, but do not switch there
return
if self.origin_name(develop) in self.repo.refs:
# the origin branch counterpart exists
origin = self.repo.refs[self.origin_name(develop)]
branch = self.repo.create_head(develop, origin)
branch.set_tracking_branch(origin)
else:
# Create 'develop' branch
info('Creating branch %r' % develop)
branch = self.repo.create_head(develop, self.master())
#.........这里部分代码省略.........
示例5: GitFlow
# 需要导入模块: from git import Git [as 别名]
# 或者: from git.Git import branch [as 别名]
class GitFlow(object):
"""
Creates a :class:`GitFlow` instance.
:param working_dir:
The directory where the Git repo is located. If not specified, the
current working directory is used.
When a :class:`GitFlow` class is instantiated, it auto-discovers all
subclasses of :class:`gitflow.branches.BranchManager`, so there is no
explicit registration required.
"""
def _discover_branch_managers(self):
managers = {}
for cls in itersubclasses(BranchManager):
# TODO: Initialize managers with the gitflow branch prefixes
managers[cls.identifier] = cls(self)
return managers
def __init__(self, working_dir='.'):
# Allow Repos to be passed in instead of strings
self.repo = None
if isinstance(working_dir, Repo):
self.working_dir = working_dir.working_dir
else:
self.working_dir = working_dir
self.git = Git(self.working_dir)
try:
self.repo = Repo(self.working_dir)
except InvalidGitRepositoryError:
pass
self.managers = self._discover_branch_managers()
self.defaults = {
'gitflow.branch.master': 'master',
'gitflow.branch.develop': 'develop',
'gitflow.prefix.versiontag': '',
'gitflow.origin': 'origin',
'gitflow.release.versionmatcher': '[0-9]+([.][0-9]+){2}',
}
for identifier, manager in self.managers.items():
self.defaults['gitflow.prefix.%s' % identifier] = manager.DEFAULT_PREFIX
def _init_config(self, master=None, develop=None, prefixes={}, names={},
force_defaults=False):
for setting, default in self.defaults.items():
if force_defaults:
value = default
elif setting == 'gitflow.branch.master':
value = master
elif setting == 'gitflow.branch.develop':
value = develop
elif setting.startswith('gitflow.prefix.'):
name = setting[len('gitflow.prefix.'):]
value = prefixes.get(name, None)
else:
name = setting[len('gitflow.'):]
value = names.get(name, None)
if value is None:
value = self.get(setting, default)
self.set(setting, value)
def _init_initial_commit(self):
master = self.master_name()
if master in self.repo.branches:
# local `master` branch exists
return
elif self.origin_name(master) in self.repo.refs:
# the origin branch counterpart exists
origin = self.repo.refs[self.origin_name(master)]
branch = self.repo.create_head(master, origin)
branch.set_tracking_branch(origin)
elif self.repo.heads:
raise NotImplementedError('Local and remote branches exist, '
'but neither %s nor %s'
% (master, self.origin_name(master) ))
else:
# Create 'master' branch
info('Creating branch %r' % master)
c = self.repo.index.commit('Initial commit', head=False)
self.repo.create_head(master, c)
def _init_develop_branch(self):
# assert master already exists
assert self.master_name() in self.repo.refs
develop = self.develop_name()
if develop in self.repo.branches:
# local `develop` branch exists, but do not switch there
return
if self.origin_name(develop) in self.repo.refs:
# the origin branch counterpart exists
origin = self.repo.refs[self.origin_name(develop)]
branch = self.repo.create_head(develop, origin)
branch.set_tracking_branch(origin)
else:
# Create 'develop' branch
info('Creating branch %r' % develop)
#.........这里部分代码省略.........