我是PythonGit的新手,我在拉动和推动方面遇到了问题。我创建了本地裸仓库并推送给它初始提交。之后我尝试使用PythonGit初始化新的用户仓库,获取它并从中拉出来。我没有初始化repo的问题但是我无法从远程/裸仓库获得任何东西。我的代码:
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>]
拉。在拉动之后,根本没有拉动任何东西,而且回购仍然是空的但存在。我做错了什么?
答案 0 :(得分:2)
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()
答案 1 :(得分:1)
我不知道如何妥善解决这个问题,但唯一的想法就是在make_head之后重新设置硬复制品。[/ p>
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')
之后所有进一步的拉动应该正常工作。