如果在Pull master分支上,如何查找Pull Request启动SHA

时间:2020-10-23 21:57:51

标签: git github pull-request

我正在创建一个GitHub Action,它运行检查以查看拉取请求如何影响代码库。该检查需要两个输入:

  1. PR更改前的存储库状态
  2. PR更改后的存储库状态

第二个输入很简单:它是PR分支上的最新提交

第一个有点棘手,我很难弄清楚。由于存在潜在的重新安排问题,它不能简单地成为主(上游)存储库的master(新的更改已在upstream/master上,而不在分支的master中) 。所以我在merge-base分支和master之间使用HEAD

git merge-base master HEAD

这可以按预期工作,但是如果PR是从分支的master分支中创建的,则会出现问题。合并基础与HEAD相同。

如何获取正确的SHA以便在更改PR之前检出存储库。 GitHub可以正确处理这种情况,并且仅显示更改的文件。

2 个答案:

答案 0 :(得分:1)

如果在PR合并后 运行此操作,则应查找PR commit的父母的合并基础:

git merge-base HEAD^ HEAD^2

答案 1 :(得分:0)

似乎可行的解决方案是在拉取请求 TextFormField(style: TextStyle(decoration: TextDecoration.none), decoration: InputDecoration(labelText: 'Enter your sample Username'), validator: (input) { return null;}); HEAD upstream之间找到合并基础。

master

这假定拉取请求指向git remote add upstream https://github.com/${{github.repository}} git fetch upstream merge_base=$(git merge-base refs/remotes/upstream/master HEAD) git checkout $merge_base 分支。