我查看了一些参考资料,但仍然遇到问题:
我想克隆一个远程仓库,创建一个新分支,然后使用 GitPython 将新分支推送回远程。
这似乎有效:
import git
import subprocess
nm_brnch = 'new_branch'
# Clone
repo_url = r'my_remote.git'
repo = git.Repo.clone_from(repo_url, dnm_wrk, branch=r'some_branch')
# Create new branch
git = repo.git
git.checkout('HEAD', b=nm_brnch)
# Push new branch to remote
subprocess.call(f'git push -u origin {nm_brnch}')
Run Code Online (Sandbox Code Playgroud)
但它很难看,因为它使用subprocess
, 而不是使用 GitPython。
我尝试使用 GitPython,但没有成功:
repo.head.set_reference(nm_brnch)
repo.git.push("origin", nm_brnch)
Run Code Online (Sandbox Code Playgroud)
我查阅了以下参考资料:
在另一个线程(基于序列中缺失数字的Python拆分列表)中,我找到了这个解决方案:
data = [1, 4,5,6, 10, 15,16,17,18, 22, 25,26,27,28]
for k, g in groupby(enumerate(data), lambda (i,x):i-x):
print map(itemgetter(1), g)
Run Code Online (Sandbox Code Playgroud)
我是Python新手,尝试将其适应Python 3.4:
for k, g in groupby(enumerate(data), lambda i,x :i-x):
print('%s' % list(map(itemgetter(1), g)))
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
<lambda>() missing 1 required positional argument: 'x'
Run Code Online (Sandbox Code Playgroud)
我(有限)的理解是,groupby 语句中的关键函数仍然链接到需要两个参数的 lambda 函数。是对的吗?更重要的是,有没有办法改编上面的代码?这是一个非常优雅和紧凑的解决方案。