0
我正在嘗試從origin/mybranch轉化mybranch。我使用此代碼:JGit rebase保留本地文件並獲取衝突文件列表
git.pull().setRebase(true).setRemoteBranchName(branch).call();
這樣做了以後,衝突的文件是基於分支的意見得到更新像
< < < < < < <上游,
但沒有衝突的本地更改即使已提交,也會被存儲庫內容覆蓋瞭解我的本地變化。
而是調用這個函數,如果我試圖運行在命令提示符git的命令「混帳底墊」的,本地文件沒有得到更新,所以它的罰款。
後來我試着下面的鏈接方式,
InteractiveHandler handler = new InteractiveHandler() {
@Override
public void prepareSteps(List<RebaseTodoLine> steps) {
for(RebaseTodoLine step : steps) {
try {
step.setAction(Action.EDIT);
} catch (IllegalTodoFileModification e) {
throw new IllegalStateException(e);
}
}
}
@Override
public String modifyCommitMessage(String oldMessage) {
return oldMessage;
}
};
git.rebase().setUpstream("origin/"+branch).runInteractively(handler).call();
在此之後,我能夠繼續衍合我的局部變化,但衝突的文件現在得到與遠程儲存的值覆蓋。
而且也是「衝突列表」和「失敗的路徑圖」的RebaseResult爲null,因爲對此我無法找到也更新了文件。
難道我在這裏做得不對或者是與JGit的問題。我也沒有得到任何適當的文檔。
關於你提到的第二個問題(與InteractiveHandler重訂):沒有一個獨立的片斷也不可能知道爲什麼衍合做它做什麼。 –