问题描述
我正试图从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个未提交的更改将被合并覆盖
提交更改,然后进行合并。或者执行合并,然后删除文件。但是无法在您所处的状态下进行合并,因为这会删除未提交的更改。