Реализовать 'git pull' с помощью libgit2?
У меня есть относительно короткий Gist, который должен использовать libgit2
подражать функциональности git pull
команда. К сожалению, это не совсем работает.
В итоге, фрагмент:
- звонки
git_repository_open()
открыть репозиторий на диске - звонки
git_remote_load()
чтобы получитьgit_remote *
на пульт с именем "происхождение" - звонки
git_remote_connect()
сGIT_DIRECTION_FETCH
флаг - звонки
git_remote_download()
извлекать предметы с пульта
В соответствии с git_remote_stats()
, объекты действительно извлекаются. Но рабочий каталог не изменяется, чтобы отразить последний коммит. Я попытался добавить:
git_checkout_head(repo, NULL);
... но это не имело значения.
Ввод:
мастер проверки
... в терминале приводит к следующему выводу:
Уже на "хозяине" Ваша ветвь отстает от 'origin / master' на 1 коммит и может быть быстро перенесена.
Как мне перемотать вперед?
1 ответ
Решение
Ты должен бежать git pull origin master
или же
git fetch origin
+ git merge origin/master
Тогда означает, что вам нужна эквивалентная функция слияния libgit2.
функция слияния доступна в libgit2 v0.20