libgit2 checkout不会更新头部

时间:2014-12-30 07:25:15

标签: git libgit2

我有一个git repo有2个分支,master和foo。主分支提交有3个文件(1.txt,2.txt,3.txt),foo分支提交删除了3.txt。

我用goo分支指向的提交的id调用git_checkout_tree,确实删除了3.txt文件。但是头不是指向foo,它仍指向master,而git status表示" D 3.txt"。

我错过了什么?如何更新头部指向foo?我想这与libgit2参考API有关。

由于

1 个答案:

答案 0 :(得分:2)

结帐功能是关于将文件签出到工作树,如函数说明所示

  

更新索引和工作树中的文件,以匹配树木所指向的树的内容。

checkout系列函数与git的checkout命令的分支切换模式无关。为了更改活动分支是什么,您需要通过通用git_reference_*函数或git_repository_set_head()便利函数帮助程序使HEAD指向该分支。