Я пытаюсь восстановить mybranch из origin/mybranch. Я использую этот код:JGit rebase хранит локальные файлы и получает список файлов конфликтов
git.pull().setRebase(true).setRemoteBranchName(branch).call();
После этого конфликтующие файлы становятся обновлены с комментариями как
< < < < < < < вверх по течению, на основе филиала
но локальные изменения без конфликтов переписываются с содержимым репозитория, хотя я совершил мои местные изменения.
Вместо вызова этой функции, если я попытался запустить команду git «git rebase» в командной строке, локальные файлы не обновляются, поэтому все в порядке.
Позже я попробовал следующую ссылку подход,
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 являются нулями, из-за которых я также не могу найти файлы, обновленные.
Я делаю что-то неправильно здесь или это проблема с JGit. У меня также не было должных документов.
Что касается вашего второго вопроса (rebase with InteractiveHandler): без самодостаточного фрагмента невозможно сказать, почему rebase делает то, что он делает. –