Моя цель - выполнить операции клонирования и извлечения в хранилище GIT
с помощью кода .NET
.При клонировании я специально хочу клонировать конкретную ветку.Если определенный репозиторий уже клонирован, но имеет другую ветвь, то я хотел бы также узнать об этом.
Я успешно реализовал это с jGit
в Java, но теперь мне нужно разработать аналогичный инструмент в .NET
, и я предпочитаю использовать NGit
, так как это прямой порт библиотеки jGIT
.
Однако, хотя я использую точные методы, передающие соответствующие параметры методу клонирования в NGit
, я не вижу загрузки репозитория.Ниже мой код:
Dim branches As List(Of String) = New List(Of String) From {branch}
Git.CloneRepository.
SetURI(cloneURL).
SetDirectory(New Sharpen.FilePath(downloadFolder)).
SetBranchesToClone(branches).
SetCredentialsProvider(New UsernamePasswordCredentialsProvider(userID, userPwd)).
SetBranch(branch).
Call()
Когда я запускаю это, это занимает несколько секунд и ошибок нет.Но в папке загрузки, которую я вижу, есть только папка .git
с некоторыми метаданными, а исходные файлы не загружаются.Если я удаляю методы SetBranchesToClone
и SetBranch
из приведенного выше кода, он успешно загружает файлы из главной ветки.
Почему он не работает, когда предоставляется информация о ветке?