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')
После этого все дальнейшие вытягивания должны работать правильно.