1

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

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

创建一个指向一个对象或另一个
引用的新引用“名称”。

该方法根据目标参数的类型和值,尝试
猜测它是直接引用还是符号引用。

关键字参数:

force
如果 True 引用将被覆盖,否则(默认)引发
异常。

例子::

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()动作的呢?

4

1 回答 1

2

create_reference方法更改目标以使所述目标包含(引用)名称。

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

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

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

于 2014-07-09T05:41:25.680 回答