Holen Sie sich den neuesten Dateizusammenführungsnamen azure devops

Ich arbeite an einem Proof of Concept für mein Projekt. Eine der Anforderungen besteht darin, den Namen der Datei zu erhalten, die zuletzt an den Hauptzweig übergeben wurde. Ich rufe den folgenden Befehl von der Azure-Pipeline auf.

$a = git diff-tree --no-commit-id --name-only -r $(Build.SourceVersion)

Es funktioniert gut, wenn ich die Datei direkt an den Hauptzweig übergebe. Wenn ich einen anderen Zweig erstelle und eine Datei hinzufüge und ihn dann mit dem Hauptzweig zusammenführe und wenn ich denselben Befehl versuche, ruft er mir keinen Wert ab. Alternativ habe ich es auch mit git diff-tree --no-commit-id --name-only -r HEAD versucht, aber dieser Befehl gibt keinen Wert zurück, wenn die Datei während des Zusammenführungsprozesses zum Hauptzweig hinzugefügt wird. Jeder Hinweis oder Hilfe wird geschätzt.


20
1

Antwort:

Gelöst

Sie können den neuesten Commit-Hash aus dem main-Zweig erhalten, unabhängig davon, ob es sich um eine Zusammenführung handelt oder nicht, indem Sie diesen Befehl verwenden:

git log -n 1 --pretty=format:"%H" main

Sie sollten dies dann wie folgt in Ihren vorhandenen Befehl integrieren können:

 git diff-tree --no-commit-id --name-only -r $(git log -n 1 --pretty=format:"%H" main)

P.S. Sie können es auf Zusammenführungen oder Nicht-Zusammenführungen beschränken, indem Sie die Schalter --merge bzw. --no-merges hinzufügen.