我想了解如何在我的本地仓库上应用拉取请求。
我有以下分支:master、production 和我目前正在处理的功能的功能分支。
假设我完成了我的功能编码,然后我在 GitHub 上打开一个 PullRequest,可能会在它投入生产之前讨论/审查我的代码。
下一步是将该功能分支合并到生产中(也就是关闭 PullRequest)。
如何在我的本地存储库中应用这些更改? 我是否必须手动将我的本地功能分支合并到我的本地生产分支,或者我应该只拉服务器生产分支并删除我的本地功能分支?
正确的做法是什么?
你已经基本描述了如何做到这一点的方法。一般来说,如果你已经合并了你的 Pull Request,那么你可以简单地在你的生产分支上调用
git pull
,这通常是恕我直言的首选。
如果您想在合并 PR 之前在本地测试功能分支,那么显然您需要调用
git merge
并将本地 feature-branch
合并到您的本地 master
中。
没有“正确的方法”,因为它主要取决于您和您同事的工作流程。
但是通常情况下,当你的 PR 将被合并到
master
时,如果你的政策确实(就像在许多地方一样)删除现在过时的功能分支,进入 master 并拉动更新它,然后删除你的本地功能
git checkout master
git pull
git branch -d feature-branch
打开拉取请求的步骤是 - - 首先将功能分支推送到远程,然后创建一个 PR(拉取请求),选择它作为源,目标将是示例中的生产分支。 - 这意味着您的功能分支(如在您本地的 git 仓库中)已经与远程中的分支同步 - 合并 PR 后; Github 会将你的特性分支合并到生产分支中。
更新本地git repo;切换到生产分支并从远程拉取 -
git checkout <production branch>
git pull origin <production branch>
只是提供一个具体的 git 命令示例来执行此操作(在一个典型的场景中)。来自Github帮助
在你的本地仓库中,检查你想要将远程 PR 应用到哪个分支。假设那是当地分行
a
cd /me/src/my-repo
git checkout a
从 Github 中获取 PR 并将其合并到一个 new 分支中。这会在您的本地存储库中创建新分支,但 not 检查它(还)。假设它是 PR #1234
并且您想创建新分支
b
如果您经常使用 github 存储库,您可能已经为其定义了一个远程,例如“上游”。如果没有,您可以指定完整的 URL:
git fetch upstream pull/1234/head:b
或
git fetch https://github.com/<them>/<their-repo> pull/1234/head:b
最后,在您有空的时候,检查新分支并使用它。
git checkout b