如何在libgit2中设置结帐策略?

问题描述

我正试图从libgit2的仓库中撤出。

我的步骤是这些:

我使用git_remote_fetch删除远程原始数据并返回OK。

使用git_merge API后。

问题是,当我只使用 git_index_remove_bypath 删除本地分支“ master”中的文件“ aa.txt”时,却没有提交。同时,我合并远程分支('origin / master')头。远程头只需修改“ bb.txt”。但是当我使用 git_merge 时,它返回错误代码“ -13”。错误信息是“ 1未提交的更改将被合并覆盖”。我只是在本地分支中删除一个文件

但是我可以在Git命令行'git pull'中成功执行。

所以,我怀疑执行Checkout时我的策略是错误的。如何避免这个错误

解决方法

我刚刚删除了本地分支中的一个文件。

如果您仅致电git_index_remove_bypath,但没有提交该更改,则您尚未删除本地分支中的文件。您有未提交的更改。

这就是为什么出现此错误的原因:

1个未提交的更改将被合并覆盖

提交更改,然后进行合并。或者执行合并,然后删除文件。但是无法在您所处的状态下进行合并,因为这会删除未提交的更改。