关于如何使用的任何建议RebaseCommand
,MergeCommand
或 JGit 中的任何其他命令来压缩提交?我找不到很多例子,文档也不是很有帮助。
一个简单的例子
我想压扁以下树:
A-----B------C------D------E------F------G------H
进入这个:
A----Z-----H
, , , , , 和Z
的压缩提交在哪里。B
C
D
E
F
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();