Mam jedno repozytorium w dwóch różnych folderach (folder1
i folder2
). W ciągu repozytoriów ma "oldFile"
plikJGit wciągnięty pliki
W folder1
I wykonaj następujące czynności:
echo 123 > oldFile
touch newFile
git add newFile oldFile
git commit -m "Change the oldFile from folder1 and add the newFile" oldFile newFile
git push origin master
potem, w folder2
zrobić kolejne kroki:
echo zxc > oldFile;
git add oldFile;
git commit oldFile -m "Change oldFile from folder2"
W tym przypadku chcę uzyskać konflikt scalania
I chcę zobaczyć wyciągnięte pliki. Mam przykład z here.
ObjectId oldHead = repository.resolve("HEAD^{tree}"); //save old objectId
PullResult pullResult = pullCommand.setProgressMonitor(new TextProgressMonitor(new OutputStreamWriter(System.out))).call();
ObjectId head = repository.resolve("HEAD^{tree}");
ObjectReader reader = repository.newObjectReader();
CanonicalTreeParser oldTreeIter = new CanonicalTreeParser();
oldTreeIter.reset(reader, oldHead);
CanonicalTreeParser newTreeIter = new CanonicalTreeParser();
newTreeIter.reset(reader, head);
List<DiffEntry> diffs= git.diff()
.setNewTree(newTreeIter)
.setOldTree(oldTreeIter)
.call();
W pullResult.getMergeResult().getMergeConflicts()
mam tylko plik oldFile
i zbieranie diffs
jest pusty.
W prostym przypadku (gdy nie zmienię "OldFile" z folder2
) kolekcja diffs nie jest pusta - ma 1 plik "newFile" i pullResult.getMergeResult().getMergeConflicts()
jest emtpy (to oczywiście).
Co robię źle? Chcę uzyskać sprzeczne pliki i udane wyciągnięte pliki.
Czyż 'komenda git pull' pokazać nazwy plików, które miały konflikty wraz z błędem konfliktu? –