【问题标题】:After git_rebase_finish (), the HEAD pointer separately from the master branchgit_rebase_finish()之后,HEAD指针与master分支分开
【发布时间】:2022-11-12 15:50:54
【问题描述】:

我正在使用 Libgit2 库制作 Git Pull --rebase 的模拟,代码没有错误,但只有我在 Master 前面有 Head。

我无法理解问题所在。

这是我的代码:

    error = git_repository_open( &repo, "/tmp/varloc" );
    cout << error << endl;
    error = git_remote_lookup( &remote, repo, "origin" );
    cout << error << endl;
    error = git_remote_fetch( remote, NULL, &fetch_options, NULL );
    cout << error << endl;
    error = git_repository_fetchhead_foreach(repo, fetchhead_ref_cb, &id_to_merge);
    cout << error << endl;
    error = git_annotated_commit_lookup(&heads, repo, &id_to_merge);
    cout << error << endl;
    error = git_repository_head(&head, repo);
    cout << error << endl;
    error = git_annotated_commit_from_ref(&onto, repo, head);
    cout << error << endl;
    error = git_rebase_init(&rebase, repo, (const git_annotated_commit *)heads, NULL, onto, &rebase_options);
    cout << error << endl;
    error = git_signature_now(&me, "Free", "pr070@riseup.net");
    cout << error << endl;
    while((error = git_rebase_next(&op, rebase)) == 0){
        error = git_rebase_commit(&rebaseOID, rebase, NULL, me, NULL, NULL);
    }
    error = git_rebase_finish(rebase, me);
    cout << error << endl;
    git_libgit2_shutdown();
    return 0;
}

吉特日志:

commit 4bc03c76474aa0fce8c90ca99f9839eb64f3a67c (HEAD)
Author: FreedomCoder <pr070cryp70n1c@riseup.net>
Date:   Sun Jul 17 22:12:48 2022 +0000

    Add 'tgb'

commit 6ef02ad62c5795d847499452118e38d94013b378 (master)
Author: FreedomCoder <pr070cryp70n1c@riseup.net>
Date:   Sun Jul 17 21:25:46 2022 +0000

    Add 'rfv'

【问题讨论】:

  • 欢迎来到堆栈溢出。你的代码不完整。我认为您可能已经为您正在使用的库遗漏了void main() { 行和#include。请edit您的问题并附上我们可能需要帮助您的任何其他代码。

标签: git-rebase libgit2


【解决方案1】:

rebase 完成后,你必须取最后一个 rebaseOID 并更新分支引用。像这样的东西:

git_branch_lookup(&ref, &repo, "master", GIT_BRANCH_LOCAL);
git_reference_set_target(&newref, ref, &rebaseOID, NULL);
git_reference_free(&newref);
git_reference_free(&ref);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 2017-01-31
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多