8

我正在尝试将远程分支中的更改合并到本地存储库中,但是我无法让它正常工作——可能是对实现的误解。获取似乎工作正常,因为我可以在服务器上看到更新,但我认为我在尝试拉取时会破坏某些东西。

我试过了:

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

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

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

4

2 回答 2

12

2014 年 4 月更新

PullLibGit2Sharp 中添加了一个方便的方法。

repo.Network.Pull(signature, pullOptions);

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

于 2014-10-22T21:39:59.657 回答
7

Pull确实是Fetch和的组合Merge

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

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

由于尚未提供完整的合并过程,因此还没有很多测试。但是,MergeFixture.cs包括合并的某些方面

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

CommitFixture.cs中还有其他相关位

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

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

更新

合并功能现在在 LibGit2Sharp 中可用(请参阅拉取请求 #608

于 2013-02-07T09:50:33.990 回答