
Mir ist der folgende Trick eingefallen, der einigermaßen funktioniert, aber ich bin sicher, dass es einen einfacheren Weg geben muss. Für jedes Commit nehme ich die erste Zeile des Befehls „git branch --contains ...“.
while read v t
do
echo -e "$v\t\c"
git branch -r --contains $v | head -1 | tr -d "\n"
echo -e "\t$t"
v=""
t=""
done
0d0098b4e origin/2021.10.EM1 XXX-2360 : Function2: XXX 4.1 Upgrade ....
476d60fa5 origin/2021.10.EM1 XXX-2362 : Function2: XXX 4.1 Upgrade ....
49455ce5d origin/2021.10.EM1 XXX-2362 : Function2: XXX 4.1 Upgrade ....
47b1f1817 origin/2021.10.EM1 XXX-2362 : Function2: XXX 4.1 Upgrade ....
e10f005ef origin/2021.10.EM1 XXX-2360 : Function2: XXX 4.1 Upgrade ....
7317613b5 origin/2021.10.EM1 XXX-2353: Revert change from wrong JIRA ....
16b41ce0c origin/2021.10.EM1 XXX-2353 : Function2: XXX 4.1 Upgrade ....
4756fe099 origin/2021.10.EM1 XXX-2353 : Function2: XXX 4.1 Upgrade ....
8c557c520 origin/2021.04.OoC XXX-2339 : Function2: XXX 4.1 Upgrade ....
6054b16a1 origin/2021.04.OoC XXX-2339 : Function2: XXX 4.1 Upgrade ....
ad9d66057 origin/2021.04.OoC XXX-2339 : Function2: XXX 4.1 Upgrade ....
b19ad447e origin/2021.04.OoC XXX-2083 : reset calendar mechanism to previous behaviour ....
c1c03a83c origin/2021.04.OoC XXX-2083 : Update default value for PROD to false to keep old behaviour ....
33c034f37 origin/2021.09.Minor XXX-1901 YYY-817 : Added the Business calendars back ....
acbbfaf4a origin/2021.09.Minor XXX-1901 YYY-817 : Removal of business calendars ....
1f5d74216 origin/2021.04.OoC XXX-2292 : Function2: XXX 4.1 Upgrade ....
117f0ca7c origin/2021.04.OoC XXX-2083 : Update default value for PROD to true to keep old behaviour ....
dffc5810e origin/2021.04.OoC XXX-2322 : Function2: XXX 4.1 Upgrade ....
a6590add6 origin/2021.04.OoC XXX-2322 : Function2: XXX 4.1 Upgrade ....
Und wie kann ich einfach die Liste der Commits erhalten, die ursprünglich beispielsweise im Zweig „2021.04.OoC“ erstellt wurden?
Antwort1
Eigentlich ist es ganz einfach, mit
git log <branch>
Antwort2
Das ist nicht möglich.
Branches in Git sind lediglich Zeiger auf bestimmte Revisionen (Commits). Wenn Sie weitere Commits hinzufügen und pushen, bewegt sich der Branch-Zeiger lokal und remote. Wenn ein Branch gelöscht wird, ist er weg. Selbst wenn er nicht gelöscht wurde, kann sich der Branch-Zeiger auf eine Weise bewegen, die die Informationen unzugänglich macht.
Sie können bis zu einem gewissen Grad ableiten, woher ein Commit stammt, wenn Sie eine solide Git-Branching-Strategie verwenden und sich Commit-Nachrichten von Merge-Commits ansehen. Diese Nachrichten enthalten normalerweise die Namen beider zusammengeführten Branches. Wenn Sie Multi-Branch-Merging (Octopus Merge) verwenden, wird das Erraten jedoch viel schwieriger.
Wenn Sie keine Branching-Strategie verwenden, sollten Sie ernsthaft darüber nachdenken. Wenn Sie sich auf Branch-Namen verlassen, für … nun ja, irgendetwas, sollten Sie damit wahrscheinlich aufhören. Es ist bestenfalls unzuverlässig.