小能豆

GitPython 拉取后工作副本中什么也没有出现

py

我是 PythonGit 新手,在拉取和推送方面遇到了问题。我创建了本地裸仓库并向其推送了初始提交。之后,我尝试使用 PythonGit 初始化新用户仓库,获取并从中拉取。初始化仓库没有问题,但是我无法从远程/裸仓库获取任何东西。我的代码:

import git

repo = git.Repo.init('.')
origin = repo.create_remote('origin', '/home/paweber/git/my-repo.git')
origin.fetch()            
repo.create_head('master', origin.refs.master).set_tracking_branch(origin.refs.master)
origin.pull()

在 ipython 控制台中进行获取和拉取时我得到:

In [5]: origin.fetch()
Out[5]: [<git.remote.FetchInfo at 0x7f4a4d6ee630>]

获取并

In [6]: origin.pull()
Out[6]: [<git.remote.FetchInfo at 0x7f4a4d6e6ee8>]

用于拉取。拉取操作后,什么都没拉取,并且 repo 仍为空但存在。我做错了什么?


阅读 23

收藏
2024-12-31

共1个答案

小能豆

pull()不执行任何操作,因为master已经位于其目标提交处,即 指向的提交处origin/master

该代码将按预期工作:

import git

repo = git.Repo.init('.')
origin = repo.create_remote('origin', '/home/paweber/git/my-repo.git')
origin.fetch()
# the HEAD ref usually points to master, which is 'yet to be born'            
repo.head.ref.set_tracking_branch(origin.refs.master)
origin.pull()
2024-12-31