
Я придумал следующий трюк, который вроде как работает, но я уверен, что должен быть более простой способ сделать это. Для каждого коммита я на самом деле беру первую строку команды '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 ....
Кроме того, как мне легко получить список коммитов, которые были изначально сделаны, например, на ветке «2021.04.OoC»?
решение1
На самом деле это довольно просто, с
git log <branch>
решение2
Это невозможно.
Ветки в Git — это просто указатели на определенные ревизии (коммиты). По мере добавления дополнительных коммитов и их отправки указатель ветки перемещается локально и удаленно. Затем, после удаления ветки, она исчезает. Даже если она не удалена, указатель ветки может переместиться таким образом, что информация станет недоступной.
Вы можете сделать вывод, в разумной степени, откуда пришел коммит, используя надежную стратегию ветвления Git и просматривая сообщения коммитов слияния. Эти сообщения обычно содержат имена обеих веток, которые были слиты. Однако, если вы используете слияние нескольких веток (слияние осьминога), угадывать становится намного сложнее.
Если вы не используете стратегию ветвления, вам стоит серьезно задуматься об этом. Если вы полагаетесь на имена ветвей для... ну, чего угодно, на самом деле, вам, вероятно, следует прекратить это. Это в лучшем случае ненадежно.