Если у меня есть репо в этом состоянииRepository.Checkout() не изменяет подмодуль убрать из буфера
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: App_Data/Submodule
modified: file.txt
с App_Data/Submodule
быть мерзавец подмодуль и file.txt
это просто обычный файл.
Бег git checkout master --force
поместит репо в этом состоянии
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: App_Data/Submodule (new commits)
no changes added to commit (use "git add" and/or "git commit -a")
но делать то же самое с LibGit2Sharp используя следующий код
using (var repo = new LibGit2Sharp.Repository(RepositoryPath))
{
repo.Checkout("master", new CheckoutOptions { CheckoutModifiers = CheckoutModifiers.Force });
}
оставляет репо в этом состоянии
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: App_Data/Submodule
Вызов сброса работает, как и ожидалось.
using (var repo = new LibGit2Sharp.Repository(RepositoryPath))
{
repo.Reset(ResetMode.Hard, "master");
}
Ожидается ли такое поведение от LibGit2Sharp? Должен ли я звонить сбрасывать себя, если я хочу отразить то же поведение git?