我有一个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有关。
由于
答案 0 :(得分:2)
结帐功能是关于将文件签出到工作树,如函数说明所示
更新索引和工作树中的文件,以匹配树木所指向的树的内容。
checkout系列函数与git的checkout
命令的分支切换模式无关。为了更改活动分支是什么,您需要通过通用git_reference_*
函数或git_repository_set_head()
便利函数帮助程序使HEAD指向该分支。