簡體   English   中英

如果拉取請求在 fork 主分支上,如何找到它的啟動 SHA

[英]How to find a Pull Request start SHA if it is on the fork master branch

我正在創建一個 GitHub 操作,它運行檢查以查看拉取請求如何影響代碼庫。 檢查需要兩個輸入:

  1. PR 更改前的存儲庫狀態
  2. PR 更改后的倉庫狀態

第二個輸入很簡單:它是 PR 分支上的最新提交

第一個有點棘手,我很難弄清楚。 它不能簡單地成為主(上游)存儲庫的master ,因為潛在的 rebase 問題(新更改已經在upstream/master ,但不在 fork 的master )。 所以我在master分支和HEAD之間使用了merge-base

git merge-base master HEAD

這按預期工作,但如果 PR 是從 fork 的master分支制作的,則會出現問題。 合並基礎與HEAD相同。

如何獲得正確的SHA以便在 PR 上進行更改之前簽出 repo。 GitHub 正確處理這種情況並且只顯示更改的文件。

如果在 PR 合並運行此操作,則應查找 PR 提交的項的合並基礎:

git merge-base HEAD^ HEAD^2

似乎有效的解決方案是在 pull request HEADupstream 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

這假設拉取請求指向master分支。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM