首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用pygit2来结帐?

如何使用pygit2来结帐?
EN

Stack Overflow用户
提问于 2014-06-22 23:48:33
回答 2查看 3.2K关注 0票数 6

我想使用pygit2签出一个分支名称。

例如,如果我有两个分支:masternewHEADmaster,我希望能够这样做:

代码语言:javascript
复制
import pygit2
repository = pygit2.Repository('.git')
repository.checkout('new')

甚至是

代码语言:javascript
复制
import pygit2
repository = pygit2.Repository('.git')
repository.lookup_branch('new').checkout()

但是这两种方法都不起作用,而且pygit2文档也没有提到如何检出分支。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-23 00:09:54

看来你能做到:

代码语言:javascript
复制
import pygit2
repo = pygit2.Repository('.git')
branch = repo.lookup_branch('new')
ref = repo.lookup_reference(branch.name)
repo.checkout(ref)
票数 9
EN

Stack Overflow用户

发布于 2021-06-22 01:11:07

我在这方面遇到了很多麻烦,这是唯一与此相关的StackOverflow文章之一,所以我想留下一个完整的示例,说明如何从Github克隆回购并签出指定的分支。

代码语言:javascript
复制
def clone_repo(clone_url, clone_path, branch, auth_token):
  # Use pygit2 to clone the repo to disk
  # if using github app pem key token, use x-access-token like below
  # if you were using a personal access token, use auth_method = 'x-oauth-basic' AND reverse the auth_method and token parameters
  auth_method = 'x-access-token'
  callbacks = pygit2.RemoteCallbacks(pygit2.UserPass(auth_method, auth_token))
  pygit2_repo = pygit2.clone_repository(clone_url, clone_path, callbacks=callbacks)
  pygit2_branch = pygit2_repo.branches['origin/' + branch]
  pygit2_ref = pygit2_repo.lookup_reference(pygit2_branch.name)
  pygit2_repo.checkout(pygit2_ref)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24356804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档