GitPython ничего не появляется в рабочей копии после извлечения

Я новичок в 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>]

для тяги. После действия извлечения ничего не вытягивается, а репо все еще пустое, но существует. Что я делаю не так?

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

Я не знаю, как правильно решить эту проблему, но единственная идея заключается в том, чтобы сказать фобии, чтобы сбросить репо после 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')

После этого все дальнейшие вытягивания должны работать правильно.

Другие вопросы по тегам