我想将所有提交合并为一个以删除历史记录。我知道它可以在Git命令行中使用,但我还没有在libgit2中找到方法。
我在最新版本中使用libgit2,由我在C ++中编译。
你有什么建议?
答案 0 :(得分:1)
有几种方法可以考虑这一点。在命令行上,您可以执行以下操作:
git reset --soft <some-ancestor-commit-ish>
git commit -m "This commit combines some history."
软重置会将当前分支移动到指向某个祖先提交而不更改工作目录和索引。因此,现在您已经完成了这些提交所引入的所有更改,您可以将它们作为新的组合提交提交。这两个步骤可以直接翻译成libgit2,例如:
git_reset(repo, ancestor_commit, GIT_RESET_SOFT, NULL);
git_commit_create(...);