假设:
分支feature/xyz的最新提交消息是带有SHA 1234的add feature xyz。最新提交的主分支的SHA编号是3456。
当我将分支feature/xyz推到回购程序并打开从feature/xyz到main的拉请求时,将触发工作流管道,如何获得提交消息add feature xyz?
注意:拉请求是打开的,没有合并。
name: Dev deploy
on:
pull_request:
types: [opened, reopened, edited, synchronize]
jobs:
deploy-to-dev:
name: deploy to dev
runs-on: ubuntu-22.04
steps:
- name: checkout repo
uses: actions/checkout@v3
- name: Set env var
run: |
echo commit=$(git log --format=%B -n 1) >> $GITHUB_ENVgit log --format=%B -n 1会给我一些类似Merge 1234 into 3456的东西。
在本例中,如何从分支feature/xyz (又名add feature xyz )获得最后一次提交的提交消息?
发布于 2022-10-18 22:42:57
我认为依赖于特性分支上的最后一次提交是一个非常糟糕的主意,并且包含一些额外的有价值的提交消息,所以我强烈建议不要这样做。但以下是对所提问题的答复。
假设如下:main分支包含提交“m1”.“m5”。feature/xyz分支包含提交“f1”.“f2”,从"m2“开始。
$ git log --graph --all --oneline
* 4d5b4ee (feature/xyz) f2
* 62f9a15 f1
| * 6cf050a (HEAD -> main) m5
| * f9bd7c6 m4
| * b7860f8 m3
|/
* 39fee03 m2
* 1c1d702 m1
* e167ed6 .gitignore
$然后跑
$ git checkout main
$ git merge feature/xyz将创建合并提交,例如
$ git log --graph --all --oneline
* 7a8474a (HEAD -> main) Merge branch 'feature/xyz'
|\
| * 4d5b4ee (feature/xyz) f2
| * 62f9a15 f1
* | 6cf050a m5
...合并提交是具有两个(或更多)父级的提交。您可能知道可以使用^作为分支/提交/ref的后缀来指示它的父级,但是当存在多个时怎么办?只有一个^与第一个父级相同,可以显式地指定为^1,相应地,^2引用第二个父级。
$ git rev-parse HEAD^
6cf050af75c8c71d441364906673690bb7f0b63d
$ git rev-parse HEAD^1
6cf050af75c8c71d441364906673690bb7f0b63d
$ git rev-parse HEAD^2
4d5b4ee433a8232300de0b62c97f613d2d812f6b
$因此,您所要求的内容听起来就像合并提交的第二个父级的提交消息,您可以通过运行
git show -s --format=format:%s%n%n%b HEAD^2当当前提交是合并提交时。
https://stackoverflow.com/questions/74117637
复制相似问题