簡體   English   中英

JGit:如何壓縮提交

[英]JGit: How to squash commits

有關如何在JGit中使用RebaseCommandMergeCommand或任何其他命令來RebaseCommand任何建議? 我找不到很多例子,文檔也沒什么幫助。

一個簡單的例子

我想壓制下面的樹:

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

進入這一個:

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

其中ZBCDEFG的壓扁提交。

任何建議和有用的資源表示贊賞。

在命令行Git中,這將使用git rebase -i ...然后為提交C,D,E,F和G選擇“fixup”。使用fixup,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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM