如何使用libgit2创建一个空的提交?

时间:2018-09-05 15:21:55

标签: c git libgit2

我一直在查看libgit2 C API reference,但看不到如何模拟git commit --allow-empty的行为。 libgit2是否具有内置方法来创建空提交?如果没有,git如何在后台创建一个空的提交,我该如何使用libgit2实现相同的行为?

1 个答案:

答案 0 :(得分:7)

使用与父提交相同的树来调用git_commit_create。那就是:

// Get parent somehow.
git_commit *parent = ...;

// Use the same tree as the parent.
git_tree *tree;
git_commit_tree(&tree, parent);

// Create the commit.
git_commit_create(..., tree, 1, parent);