Пример JGit для MergeCommand
Я новичок в JGit и пытаюсь создать программу для выполнения операций git через JGit.
Есть ли хороший пример для JGit Merge, я посмотрел на https://github.com/centic9/jgit-cookbook/ но доступен только CheckMergeStatusOfCommit.java, который не полностью отвечает моим требованиям.
Сценарий:- У меня есть файл на моем удаленном компьютере с именем " abc.txt ", а также в моем рабочем репо. Файл имеет конфликты, так как в одной и той же строке есть разный текст на удаленном и рабочем хранилище.
Как я могу получить последние изменения с моего пульта и объединить их с изменениями из рабочего репо, мне нужны изменения как из (удаленного, так и из рабочего репо).
Пожалуйста, предложите.
1 ответ
Я создал соответствующий пример как часть моей jgit-cookbook на MergeChanges.java, соответствующий фрагмент кода выглядит примерно так:
ObjectId mergeBase = repository.resolve("changes");
System.out.println("Merge-Results for id: " + mergeBase + ": " + merge);
for (Map.Entry<String,int[][]> entry : merge.getConflicts().entrySet()) {
System.out.println("Key: " + entry.getKey());
for(int[] arr : entry.getValue()) {
System.out.println("value: " + Arrays.toString(arr));
}
}
Обновление: отредактировал фрагмент, чтобы показать, как возвращаются конфликты слияния, см. Также JavaDoc для getConflicts()