Ich habe ein Repository in zwei verschiedenen Ordnern (folder1
und folder2
). Innerhalb Repositories hat eine "oldFile"
DateiJGit bekommen Dateien gezogen
Im folder1
ich die folgenden Schritte ausführen:
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
Danach wird in der folder2
ich die nächsten Schritte:
echo zxc > oldFile;
git add oldFile;
git commit oldFile -m "Change oldFile from folder2"
In diesem Fall möchte ich Erhalten Sie einen Zusammenführungskonflikt
Und ich möchte gezogene Dateien sehen. Ich habe das Beispiel von 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();
In pullResult.getMergeResult().getMergeConflicts()
ich nur haben oldFile
-Datei und die diffs
Sammlung ist leer.
In einem einfachen Fall (wenn ich die „oldfile“ nicht ändern von folder2
) die Differentiale Sammlung ist nicht leer - es hat 1 die Datei „newFile“ und pullResult.getMergeResult().getMergeConflicts()
ist leer (es ist offensichtlich).
Was mache ich falsch? Ich möchte in Konflikt stehende Dateien und erfolgreich gezogene Dateien erhalten.
nicht die 'git pull' Befehl zeigen Sie die Dateinamen, die zusammen mit Konflikten Fehler Konflikte hatte? –