使用pygit2从远程拉出的步骤

时间:2014-07-09 05:32:29

标签: git pygit2

使用pygit2库时,一个简单的repo.fetch()获取所有的差异。 答案here描述了步骤即  1. Remote.fetch()
 2. Repository.create_reference()Reference.target=
 3. Repository.checkout_head()

我不确定第二步中发生了什么,以及需要传递哪些参数。 r.repo.create_reference: (self, name, target, force=False)

  
    

创建一个新的引用“name”,它指向一个对象或另一个对象     参考。

         

根据目标参数的类型和值,此方法尝试
    猜测它是直接的还是象征性的参考。

         

关键字参数:

         


        如果将覆盖True引用,否则(默认值)a         提出异常。

         

示例::

         

repo.create_reference('refs / heads / foo',repo.head.target)
      repo.create_reference('refs / tags / foo','refs / heads / master')
      repo.create_reference('refs / tags / foo','bbb78a9cec580')

  

第二步发生了什么,Reference.target=是什么意思 应该指向哪里? 所有这些如何使用Remote.fetch()动作?

1 个答案:

答案 0 :(得分:2)

create_reference method更改目标,以便所述目标包含(引用)名称。

这里,在获取之后,您需要将本地分支(您想要结帐)的引用设置为右侧远程跟踪分支(您刚刚获取):

repo.create_reference('refs/remotes/origin/master', 'refs/heads/master')

您可以查找文件" refs/heads/master"在.git文件夹中:它是一个简单文件,包含它必须包含的引用,以便该分支指向(引用)另一个分支SHA1。