【问题标题】:What is the LibGit2Sharp equivalent of 'git pull'?'git pull' 的 LibGit2Sharp 等价物是什么?
【发布时间】:2013-02-06 19:44:50
【问题描述】:

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

我试过了:

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

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

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

【问题讨论】:

  • github.com/libgit2/libgit2sharp 上问这个问题会更好——这是一个非常活跃的社区。但要回答您的问题,合并正在进行中。我很乐意在 github 上讨论更多...
  • 我知道它在那里活跃,但我在问题跟踪器中问了一个问题,并被指示在这里提问,所以我一直在 :)
  • @EdwardThomson:嗯,根据README“使用或编程相关的问题?使用标签libgit2sharp将其发布在StackOverflow上” ;-)
  • @nulltoken 感谢您的备份 :-) 知道我们谈论合并实施需要多长时间?我首先使用的是您的 GitSharp,它似乎比 LibGit2Sharp 更完整(我很确定合并已实现)。
  • “知道我们谈论合并实现要多长时间吗?” -> 不。准备好后我会更新答案。

标签: libgit2sharp


【解决方案1】:

2014 年 4 月更新

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

repo.Network.Pull(signature, pullOptions);

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

【讨论】:

  • 从 0.25.0 版开始,网络不再有拉操作......但是,有一个新的静态命令对象具有拉功能。
【解决方案2】:

Pull确实是FetchMerge的组合。

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

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

由于 complete 合并过程尚不可用,因此还没有很多测试。但是,MergeFixture.cs 包含合并的一些方面

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

CommitFixture.cs 中还有其他相关位

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

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

更新

Merge 功能现已在 LibGit2Sharp 中可用(请参阅 pull request #608

【讨论】:

    猜你喜欢
    • 2021-08-26
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 2010-10-09
    • 2013-10-01
    • 2021-11-24
    • 2011-05-06
    • 2017-11-13
    相关资源
    最近更新 更多