Git - 将未合并的拉取请求的更改显示为我的 head 分支中未提交的更改
Git - show changes from an unmerged pull request as uncommitted changes in my head branch
我拥有这个仓库。一个人发送了一个我还没有合并的 PR。与我在 VSCode 中的 master
分支相比,我想查看该 PR 的所有更改。这类似于您进行一些更改并且这些更改处于未提交状态)。我该怎么做?
我关注了 How can I check out a GitHub pull request with git? 但没有找到我需要的答案。例如命令 git pull origin pull/939/head
将合并更改而不是显示为未提交的更改。
首先,您必须获取 PR
git fetch origin pull/<pr_id>/head:new_branch
现在您在 new_branch
中有了 PR 更改
git diff new_branch ^HEAD | git apply -
git diff <another-branch> ^HEAD
这将打印 new_branch
和您当前分支 (HEAD) 之间的变化差异。
git apply -
然后这会将这些更改应用到当前索引。
成功了。
所以,我的完整流程是:
'detached HEAD' 州
结帐 PR (100)
git fetch origin pull/100/head && git checkout FETCH_HEAD
显示为未提交的更改
git reset main
切换回主分支并进行这些更改
git switch -
此外,制作了一个方便的 powershell 函数
<# USE CASE
> gitpr
gives list of active PRs
> gitpr 12
checks out PR #12
#>
function gitpr {
param(
[Parameter(ValueFromRemainingArguments = $true)]
[String[]] $prNum
)
if($prNum){
git fetch origin pull/"$prNum"/head && git checkout FETCH_HEAD
git reset main
git switch -
echo "checked out PR: "$prNum""
}else{
gh pr list
}
}
我拥有这个仓库。一个人发送了一个我还没有合并的 PR。与我在 VSCode 中的 master
分支相比,我想查看该 PR 的所有更改。这类似于您进行一些更改并且这些更改处于未提交状态)。我该怎么做?
我关注了 How can I check out a GitHub pull request with git? 但没有找到我需要的答案。例如命令 git pull origin pull/939/head
将合并更改而不是显示为未提交的更改。
首先,您必须获取 PR
git fetch origin pull/<pr_id>/head:new_branch
现在您在 new_branch
中有了 PR 更改
git diff new_branch ^HEAD | git apply -
git diff <another-branch> ^HEAD
这将打印new_branch
和您当前分支 (HEAD) 之间的变化差异。git apply -
然后这会将这些更改应用到当前索引。
成功了。
所以,我的完整流程是:
'detached HEAD' 州
结帐 PR (100)git fetch origin pull/100/head && git checkout FETCH_HEAD
显示为未提交的更改
git reset main
切换回主分支并进行这些更改
git switch -
此外,制作了一个方便的 powershell 函数
<# USE CASE
> gitpr
gives list of active PRs
> gitpr 12
checks out PR #12
#>
function gitpr {
param(
[Parameter(ValueFromRemainingArguments = $true)]
[String[]] $prNum
)
if($prNum){
git fetch origin pull/"$prNum"/head && git checkout FETCH_HEAD
git reset main
git switch -
echo "checked out PR: "$prNum""
}else{
gh pr list
}
}