Как клонировать/извлекать репозиторий git с помощью libgit2?

Мне нужно инициализировать репозиторий git и загрузить в него последнюю версию ветки. В bash команды такие:

git init
git remote add -t $BRANCH -f origin $REMOTE

Я пытаюсь сделать то же самое программно с libgit2, но не могу найти эквивалент для второй строки. Призывы к созданию пульта очевидны, но я не вижу ни одного, чтобы добавить его в репозиторий или обработать ветку.

Возможно ли это сделать с помощью libgit2? Если нет, есть ли библиотека, способная это сделать?


person ssube    schedule 18.12.2011    source источник
comment
Я не знаю об использовании libgit2, но не проще ли сделать git clone <url>?   -  person suvayu    schedule 18.12.2011


Ответы (1)


Шаги высокого уровня, описывающие, как реализовать процесс выборки в libgit2, можно найти здесь.

Вы можете найти примеры кода, выполняющего такую ​​задачу здесь и здесь. Остерегайтесь, что эти примеры могут немного рассинхронизироваться по мере развития API.

Обратите внимание, что эти фрагменты кода будут извлекать все новые коммиты (ветвь – это всего лишь указатель на конкретный коммит) с удаленного удаленного сервера, определенного восходящим потоком.

На сегодняшний день нет возможности выполнить проверку в libgit2.

Если вам нужна дополнительная помощь, я бы порекомендовал эти два места:

Обновлять

Функция клонирования только что была объединена с репозиторием libgit2.

В рамках запроса на включение автор также позаботился о том, чтобы предоставить пользователям реализацию проверки.

person nulltoken    schedule 18.12.2011
comment
Это отвечает на вопрос, хотя жаль, что libgit2 недостаточно функционален, чтобы справиться с этим. - person ssube; 19.12.2011