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

Xae*_*eaz 7 libgit2sharp

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

我试过了:

repo.Checkout( branch.TrackedBranch, CheckoutOptions.None, OnCheckoutProgress );
Run Code Online (Sandbox Code Playgroud)

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

我已经查看了回购中的一些测试,例如MergeFixture,但它似乎并不是我希望的那样.

Mic*_*ton 9

自2014年4月起更新

PullLibGit2Sharp中添加了一种便捷方法.

repo.Network.Pull(signature, pullOptions);
Run Code Online (Sandbox Code Playgroud)

您可以在测试夹具中找到更多基本用法.


nul*_*ken 6

Pull确实是Fetch和的结合Merge.

  • Fetch 准备好了
  • Merge 正在进行中(如@EdwardThomson所述)

我已经查看了回购中的一些测试,例如MergeFixture,但它似乎并不是我希望的那样.

由于还没有完整的合并过程,所以还没有很多测试.但是,MergeFixture.cs包括合并的某些方面

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

还有其他相关位的CommitFixture.cs还有

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

Libgit2还包括一些较低级别的位来处理用户已解决的冲突.

更新

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