我想出了以下技巧,它有点用,但我相信一定有更简单的方法可以做到这一点。对于每次提交,我实际上都采用“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 分支策略并查看合并提交的提交消息,您可以在合理的程度上推断提交来自何处。这些消息通常包含合并的两个分支的名称。但是,如果您使用多分支合并(章鱼合并),猜测会变得更加困难。
如果你没有使用分支策略,你应该认真考虑一下。如果你依赖分支名称来做……好吧,实际上,任何事情,你应该停止它。它充其量是不可靠的。