LibGit2Sharp CheckoutPaths() для возврата файла без указания ветки

Я хотел бы сделать эквивалент git checkout -- file, чтобы отменить изменения в файле, еще не подготовленном для фиксации.

Я видел вопрос о том, как оформить заказ из определенного коммита, однако я не хочу указывать какие-либо конкретные коммит или ветка.

В следующем коде параметр для commitishOrBranchSpec кажется обязательным, но не может быть нулевым или пустой строкой; можно ли указать здесь значение, которое указывает default, аналогично отсутствию указания какой-либо ветки или фиксации в командной строке git выше?

using (var repo = new Repository(workingDir))
{
    // $TODO: Figure out what to pass for parameter 1,
    // commitishOrBranchSpec (null and "" don't work)
    repo.CheckoutPaths("", Enumerable.Repeat(filePath, 1));
}

person Jacob Pitts    schedule 16.04.2016    source источник


Ответы (1)


Я видел вопрос о том, как оформить заказ из определенной фиксации, однако я не хочу указывать какую-либо конкретную фиксацию или ветку.

Вы должны указать что-то для оформления заказа. Если вы хотите эмулировать git checkout -- file, вы можете просто использовать ветку HEAD. Например:

repo.checkoutPaths(repo.Head, new string[] { filePath }, checkoutOptions);
person Edward Thomson    schedule 14.06.2016
comment
Спасибо - похоже, что repo.Head.FriendlyName (который в данном случае является строкой «мастер») был успешным. - person Jacob Pitts; 05.07.2016