在 GIT 中,我如何知道最初在哪個分支上進行了特定提交?和/或最初在特定分支上進行了哪些提交?

在 GIT 中,我如何知道最初在哪個分支上進行了特定提交?和/或最初在特定分支上進行了哪些提交?

我想出了下面的技巧,這種技巧是有效的,但我確信一定有一種更簡單的方法來做到這一點。對於每次提交,我實際上採用“gitbranch--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 分支策略並透過查看合併提交的提交訊息時,您可以在合理的程度上推斷提交的來源。這些訊息通常包含合併的兩個分支的名稱。如果您使用多分支合併(章魚合併),則猜測會變得更加困難。


如果您不使用分支策略,則應該認真考慮它。如果你依賴分支名稱......好吧,任何事情,真的,你應該停止它。這充其量是不可靠的。

相關內容