我正在尝试使用libgit2sharp
来获取文件的先前版本。我希望工作目录保持原样,至少恢复到以前的状态。
我最初的方法是尝试在我想要的文件上存储、签出路径,将其保存到字符串变量,然后存储弹出。有没有办法储存流行音乐?我不容易找到。这是我到目前为止的代码:
using (var repo = new Repository(DirectoryPath, null))
{
var currentCommit = repo.Head.Tip.Sha;
var commit = repo.Commits.Where(c => c.Sha == commitHash).FirstOrDefault();
if (commit == null)
return null;
var sn = "Stash Name";
var now = new DateTimeOffset(DateTime.Now);
var diffCount = repo.Diff.Compare().Count();
if(diffCount > 0)
repo.Stashes.Add(new Signature(sn, "x@y.com", now), options: StashModifiers.Default);
repo.CheckoutPaths(commit.Sha, new List<string>{ path }, CheckoutModifiers.None, null, null);
var fileText = File.ReadAllText(path);
repo.CheckoutPaths(currentCommit, new List<string>{path}, CheckoutModifiers.None, null, null);
if(diffCount > 0)
; // stash Pop?
}
如果有比使用 Stash 更简单的方法,那也很好用。