GitPython 拉取后工作副本中没有任何内容

GitPython nothing appears in working copy after pull

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

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 仍然是空的但存在。我做错了什么?

我不知道如何正确解决这个问题,但唯一的想法是在 create_head 之后重置硬回购。

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()
repo.head.reset('--hard')

在那之后,所有进一步的拉动都应该正常工作。

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()