繁体   English   中英

如何从已经结帐的拉取请求中提取更改?

[英]How to pull changes from a pull request thats already checkout?

我已经使用以下方法检查了 PR:

git fetch origin pull/pull_req_ID/head:NEWBRANCHNAME

但是,我无法从该 PR 中对我的本地分支进行更改。

拉取请求是在线存储库(如 Github)的特性,基本上意味着“这个人想要将这些更改这个分支合并到那个分支”。 不是一个实际的分支,而是显示来自某人分支的更改,允许在将其合并到某个基本分支之前讨论/审查这些更改。

在 Git 术语中,它基本上是执行git merge的请求。

所以你需要做的是检查pull request信息,找到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 合并或接受拉取请求。

如果我正确理解了这个问题,那么在您最初获取 PR 后,另一位开发人员已将更改推送到 PR,并且您希望获得最新更新。 这应该有效:

git checkout NEWBRANCHNAME
git fetch origin pull/pull_req_ID/head
git rebase FETCH_HEAD  # Or git merge FETCH_HEAD

比特桶示例:

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

如果您在当地分行:

git pull
git merge NEWBRANCHNAME

从...开始:

git pull

您必须切换到将接收更改的分支。

git checkout old_branch

之后,与您执行拉取请求的分支进行合并。

git merge changed_branch

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM