【问题标题】:Implementing 'git pull' with libgit2?用 libgit2 实现“git pull”?
【发布时间】:2013-03-19 05:51:40
【问题描述】:

我有a relatively short Gist,它应该使用libgit2 来模拟git pull 命令的功能。不幸的是,它不是很有效。

总之,sn-p:

根据git_remote_stats(),确实正在获取对象。但是工作目录不会改变以反映最新的提交。我尝试添加:

git_checkout_head(repo, NULL);

...但这并没有什么不同。

输入:

git checkout master

...在终端中会产生以下输出:

已经在'master'上
您的分支落后于 'origin/master' 1 次提交,并且可以快进。

如何快进?

【问题讨论】:

    标签: c git libgit2


    【解决方案1】:

    你应该运行git pull origin master

    git fetch origin + git merge origin/master

    那么意味着你需要等效的 libgit2 合并函数。

    合并功能在 libgit2 v0.20 中可用

    【讨论】:

    • 实际上,有一个 WIP (work in progress) 分支包含一个git_merge 函数。它似乎比较成熟,我目前正在考虑使用它。
    • 这有什么新的吗?
    • 提及 libgit2 v0.20
    • 这是 +/- 正确的;但是,如果本地分支(即 master)映射到具有不同名称的远程分支(例如,如果您的本地“master”分支映射到远程上的“devel”分支),您应该小心。“pull”的完整 libgit2 实现" 还想查看配置以获取远程到本地分支的映射。
    猜你喜欢
    • 1970-01-01
    • 2020-03-25
    • 2018-03-02
    • 2021-11-17
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 2017-11-23
    • 2014-01-03
    相关资源
    最近更新 更多