什么是LibGit2Sharp相当于'git pull'?

时间:2013-02-06 19:44:51

标签: libgit2sharp

我正在尝试将更改从远程分支合并到本地存储库,但是我无法使其正常工作 - 可能是对实现的误解。提取似乎工作正常,因为我可以看到服务器上的更新,但我认为当尝试拉动时,我正在破坏。

我试过了:

repo.Checkout( branch.TrackedBranch, CheckoutOptions.None, OnCheckoutProgress );

这似乎可以满足您对Clone调用的期望。我也找不到合并的方法。正如我所读到的,git pull就像调用fetch,然后是合并一样。

我看过回购中的一些测试,例如MergeFixture,但它似乎并不是我希望的那样。

2 个答案:

答案 0 :(得分:9)

截至2014年4月更新

LibGit2Sharp中添加了Pull的便捷方法。

repo.Network.Pull(signature, pullOptions);

您可以在test fixtures中找到更多基本用法。

答案 1 :(得分:6)

Pull确实是FetchMerge的组合。

  • Fetch已准备就绪
  • Merge正在进行中(如@EdwardThomson所述)
  

我看过回购中的一些测试,例如MergeFixture,但它似乎并不是我希望的那样。

由于完整的合并过程尚不可用,所以还没有很多测试。但是,MergeFixture.cs包含合并

部分方面
  • 检测冲突/未合并的条目
  • 检索正在合并的分支

CommitFixture.cs中还有其他相关位

  • 清除提交
  • 上的潜在合并元数据
  • 发出合并提交时自动包含父项

Libgit2还包含一些 lower level bits 来处理用户已解决的冲突。

更新

合并功能现已在LibGit2Sharp中提供(请参阅 pull request #608