JGit:如何压缩提交

2024-06-10

关于如何使用的任何建议RebaseCommand, MergeCommand或者 JGit 中的任何其他命令来压缩提交?我找不到很多例子,文档也不是很有帮助。

一个简单的例子

我想压扁下面的树:

A-----B------C------D------E------F------G------H

进入这个:

A----Z-----H

Where Z是压缩的提交B, C, D, E, F, and G.

任何建议和有用的资源都将受到赞赏。


在命令行 Git 中,这可以使用git rebase -i ...然后为提交 C、D、E、F 和 G 选择“修复”。通过修复,Z 将具有与 B 相同的提交消息。

在 JGit 中,这可以使用 RebaseCommand 来完成:

InteractiveHandler handler = new InteractiveHandler() {
    public void prepareSteps(List<RebaseTodoLine> steps) {
        // loop through steps and use setAction to change action
    }

    public String modifyCommitMessage(String oldMessage) {
        return oldMessage;
    }
};

Repository repo = FileRepositoryBuilder.create(gitDir);
Git git = Git.wrap(repo);
git.rebase().setUpstream(commitA).runInteractively(handler).call();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JGit:如何压缩提交 的相关文章

随机推荐