2

git_reference *特定のリモートのHEADに到達する方法がわからないようです。

私が持っている:

git_repository * repo = NULL;
git_reference *   ref = NULL;

/* ...load repository... */

if(git_reference_lookup(&ref, repo, "remotes/origin/HEAD"))
    printf("Error obtaining reference to remote HEAD!");

アプリケーションの実行時にエラーメッセージが表示され、参照が見つからなかったことを示します。ただし、リモートHEADは実際に存在します。

$:.git / refs/*を検索
.git / refs / heads
.git / refs / heads / master
.git / refs / remotes
.git / refs / remotes / origin
.git / refs / remotes / origin / HEAD
.git / refs / tags

git_reference *リモートHEADに取得できないのはなぜですか?

4

1 に答える 1

3

参照へのフルパスを指定する必要があります。例えば:

int error = git_reference_lookup(&ref, repo, "refs/remotes/origin/HEAD");

libgit2はプレフィックスrefs/を付けることができませんでした。さもないと、他の場所で参照、特に参照を開くことができなくなりHEADます。

于 2013-03-19T18:17:46.583 に答える