2016-04-16 5 views
1

Ich möchte das Äquivalent von git checkout -- file tun, um Änderungen in einer Datei zu verwerfen, die noch nicht zum Festschreiben bereitgestellt wurde.LibGit2Sharp CheckoutPaths(), um eine Datei ohne Angabe eines Zweigs wiederherzustellen

Ich habe die Frage um how to checkout from a specific commit gesehen, aber ich möchte kein bestimmtes Commit oder eine Verzweigung angeben.

Im folgenden Code scheint der Parameter für commitishOrBranchSpec erforderlich zu sein, darf aber nicht null oder eine leere Zeichenfolge sein. Gibt es einen Wert, der hier angegeben werden kann, der default angibt, ähnlich wie das Fehlen einer Verzweigung oder eines Commits in der obigen git-Befehlszeile?

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)); 
} 

Antwort

0

Ich habe die Frage um zu sehen, wie aus einem bestimmten begehen jedoch zur Kasse, ich will keine spezifischen begehen oder Zweig spezifizieren.

Sie müssen etwas zum Auschecken angeben. Wenn Sie git checkout -- file emulieren möchten, können Sie einfach den Zweig HEAD verwenden. Zum Beispiel:

repo.checkoutPaths(repo.Head, new string[] { filePath }, checkoutOptions); 
+1

Danke - sieht aus wie 'repo.Head.FriendlyName' (was in diesem Fall die Zeichenfolge 'Master' ist), war erfolgreich. –

Verwandte Themen