我已经使用以下方法检出了PR:
git fetch origin pull/pull_req_ID/head:NEWBRANCHNAME
但是,我无法从该PR将更改拉到我的本地分支。
答案 0 :(得分:2)
拉取请求是在线存储库(如Github)的功能,基本上意味着“此人希望将这些更改从 this 分支合并为 that 分支”。它不是实际的分支,而是呈现了某人的分支中的更改,允许在将这些更改合并到某个基础之前对其进行讨论/审查。 em>分支。
用Git来讲,基本上是要求进行git merge
的请求。
因此,您需要做的是检查请求请求信息,找到SOURCE(要合并的分支)和DEST(要合并到的分支)。这是Github的示例:
其中SOURCE分支为fix-bug-1234
,DEST分支为master
。
然后做:
git fetch origin <SOURCE>
git fetch origin <DEST>
git checkout <DEST> # You will now be in DEST branch
git pull # Update copy of base branch
git merge origin/<SOURCE> # Merge changes from SOURCE to DEST
git push origin <DEST> # Push the update DEST branch
对我来说,最好创建SOURCE分支的本地副本。
git fetch origin # Fetch all branches, both SOURCE and DEST
git checkout <SOURCE> # Create a local copy of the SOURCE branch
git pull # You now have the changes to merge
git checkout <DEST> # You will now be in DEST branch
git pull # Update copy of base branch
git merge <SOURCE> # Merge changes from SOURCE to DEST
git push origin <DEST> # Push the update DEST branch
如果您不想处理这些命令行内容,则在线回购通常可以通过其UI合并或接受拉取请求。
答案 1 :(得分:0)
如果您在本地分支机构中:
git pull
git merge NEWBRANCHNAME
答案 2 :(得分:0)
开始于:
git pull
您必须切换到将接收更改的分支。
git checkout old_branch
之后,与您提取请求的分支进行合并。
git merge changed_branch
答案 3 :(得分:0)
如果我正确理解了这个问题,则另一位开发人员在最初获取PR后已将更改推送到PR,并且您希望获得最新更新。这应该起作用:
git checkout NEWBRANCHNAME
git fetch origin pull/pull_req_ID/head
git rebase FETCH_HEAD # Or git merge FETCH_HEAD
Bitbucket示例:
git fetch origin pull-requests/101/from:pr/101
git checkout pr/101
# ...New changes pushed to PR #101 by another developer
git fetch origin pull-requests/101/from
git rebase FETCH_HEAD
Gitlab示例:
git fetch origin merge-requests/101/head:mr/101
git checkout mr/101
# ...New changes pushed to MR #101 by another developer
git fetch origin merge-requests/101/head
git rebase FETCH_HEAD