@Glob_123

Libgit2Sharp. Ошибка: There is no tracking information for the current branch. Как сделать git pull?

Я пытаюсь в ответ на ошибку от Repository.Clone
exists and is not an empty directory Файл C:\projects\libgit2sharp\LibGit2Sharp\Core\Ensure.cs


using (var repo = new Repository(PathToGame))
            {
                PullOptions options = new PullOptions();
                options.FetchOptions = new FetchOptions();

                options.FetchOptions.CredentialsProvider = new CredentialsHandler(
                (url, usernameFromUrl, types) => new UsernamePasswordCredentials());

                var signature = new Signature(new Identity("name", "mail"), DateTimeOffset.Now);

                var pull = Commands.Pull(repo, signature, options);
            }


Код выше выдаёт :
There is no tracking information for the current branch


Гуглив я увидел это https://stackoverflow.com/questions/10147475/git-c...

Там рекомендуют сделать это:
git branch --set-upstream-to=origin/master master


Нужно это сделать на Libgit2Sharp. Я нагуглил это https://github.com/libgit2/libgit2sharp/issues/1235

Там говорят:
Pull uses the current branch as a way to know what it should do. If there is no branch, then you must specify where it is that it should fetch from and what branch to fetch.


Нагуглил wiki https://github.com/libgit2/libgit2sharp/wiki/git-branch
Там вроде что-то есть, но как это применить не знаю.

Я не понимаю как сделать это... мог бы подсказать кто?
  • Вопрос задан
  • 196 просмотров
Решения вопроса 2
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Зачем вам Pull? Делайте Clone и всё автоматом свяжется.

exists and is not an empty directory
Клонировать мы должны либо в пустой каталог, либо в ещё не существующий.

Если вы этого не понимаете, то вам нужно срочно учить Git. Это важный навык для программиста.

Почитав ваши предыдущие вопросы, мне показалось что вы вообще не понимаете что делаете. Если вы хотите отменить изменения файлов в рабочем каталоге, то ничего заново клонировать не надо. Весь код у вас уже лежит в локальном репозитории. Вам нужно лишь откатить изменения до того состояния, которое в локальном репозитории.

git reset --hard

#### LibGit2Sharp
using (var repo = new Repository("path/to/your/repo"))
{
    Commit currentCommit = repo.Head.Tip;
    repo.Reset(ResetMode.Hard, currentCommit);
}
Ответ написан
@Glob_123 Автор вопроса
Проблема в недогруженной папке .git. Решением оказалось просто удалять недогруженную папку и начинать Clone заново.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы