我想检查之前创建的拉请求(通过GitHub web界面创建)。我搜索了一下,发现不同的地方有裁判/拉或裁判/拉/pr
但是当我添加fetch = +refs/pull/*/head:refs/remotes/origin/pr/*到git配置文件并进行git取回时
我哪里做错了?GitHub应该自动创建拉/xyz东西,还是我必须配置一些东西?
我想检查之前创建的拉请求(通过GitHub web界面创建)。我搜索了一下,发现不同的地方有裁判/拉或裁判/拉/pr
但是当我添加fetch = +refs/pull/*/head:refs/remotes/origin/pr/*到git配置文件并进行git取回时
我哪里做错了?GitHub应该自动创建拉/xyz东西,还是我必须配置一些东西?
当前回答
Github最近发布了一个名为Github -cli的cli实用程序。在安装它之后,你可以使用它的id (doc)在本地签出一个拉请求的分支。
例:gh pr checkout 2267
这也适用于fork,但如果你需要回推到fork,你需要添加远程存储库并使用传统的git推送(直到这个票据在gh实用程序中实现)
其他回答
将远程公关分支机构导入本地分支机构:
Git获取来源' remote_branch ': ' local_branch_name '
配置本地分支的上游为远端分支。
git分支——set-upstream-to=origin/PR_Branch_Name local_branch
当您想再次将本地更改推到PR分支时
git push origin HEAD:remote_PR_Branch_name
虽然这个线程上的大多数答案都可以工作,但我更喜欢在新的分支中获取一个pull请求,并对旧的提交进行软重置(将PR更改移动到staging区域),这允许我测试以及查看我的IDE中的差异。
git fetch origin pull/<PR-id>/head:<BRANCH_NAME>
git checkout BRANCH_NAME
然后对旧的提交进行软重置(参见使用git log的提交列表)
git reset --soft <hash_of_old_commit>
e.g
git fetch origin pull/65/head:test-branch
git checkout test-branch
git log # press 'q' to exit
git reset --soft 7d7fe166cd878ed70c559c4e98faf2323532
运行上述命令将提取PR的更改,并将它们显示在您的IDE版本中,它们不会被提交,您可以在登台区域中看到差异(就像这些更改是在本地进行的一样)。
参考:Github文档参考
如果你使用Github.com,转到“拉请求”,点击相关的拉请求,然后点击“命令行说明”链接:
签出PR并查看与VSCode中的主分支相比PR的所有更改。类似文件更改部分Github的PR页面。
checkout PR(100)在“分离HEAD”状态 git fetch origin pull/100/head && git checkout FETCH_HEAD 显示为未提交的更改 Git重置主机 切换回主分支并执行这些更改 Git开关-
有一种使用git-cli的简单方法
gh pr checkout {<number> | <url> | <branch>}
参考:https://cli.github.com/manual/gh_pr_checkout