在github 上操作PR

236 阅读4分钟

如果你已经按照以下步骤:

  1. git pull origin develop_xxx
  2. git merge feature_branch
  3. git push origin develop_xxx

将本地的 feature_branch 代码合并到 develop_xxx 并推送到了远程仓库 develop_xxx 分支上,那么 GitHub 上的 develop_xxx 分支已经包含了最新的更改。

在这种情况下,你无法再从本地的 feature_branch 创建 PR,因为更改已经直接合并到了 develop_xxx,并且 PR 通常是用来在未合并的分支之间提交代码进行审核的。

feature_branch 合并并推送到远程分支 develop_xxx,并且希望消除这些更改的痕迹,然后通过 GitHub PR 流程重新进行操作,你需要 撤销这些更改并重置远程仓库的状态。下面是详细步骤:

1. 重置远程分支 develop_xxx 回到合并前的状态

首先,需要回到 develop_xxx 分支上,并撤销你已经推送的合并。

1.1 查看develop_xxx的历史

通过下面的命令查看合并之前的提交记录,找到合并之前的提交 ID:

git log

这个命令会列出当前分支的提交历史,你需要找到合并之前的那次提交的哈希值(例如 abc1234 )。

1.2 回退到合并前的状态

使用下面的命令,将 develop_xxx 分支重置为合并之前的状态:

git reset --hard <commit_id>

<commit_id> 替换为你在上一步中找到的合并前的提交 ID。

1.3 强制推送到远程仓库

由于你已经推送了更改到远程分支,现在需要强制推送 (--force) 回滚后的状态到远程 develop_xxx

git push origin develop_xxx --force

这个命令会覆盖远程仓库中的 develop_xxx 分支,恢复到合并之前的状态。

2. 重新创建 PR 进行代码审核

2.1 确保 feature_branch 推送到远程

如果 feature_branch 尚未推送到远程仓库,请执行以下命令推送:

git push origin feature_branch

2.2 在 GitHub 上创建新的 Pull Request

登录 GitHub 后,按照以下步骤操作:

  1. 打开你的项目仓库页面,点击 "Pull requests" 标签。
  2. 点击 "New pull request"
  3. 选择 "base" 分支为 develop_xxx"compare" 分支为 feature_branch
  4. 添加描述,说明 PR 的目的和更改内容。
  5. 点击 "Create pull request"

2.3 等待团队审核并合并

团队成员可以对 PR 进行代码审核,审查通过后,可以通过 GitHub 将 feature_branch 合并到 develop_xxx

总结步骤:

  1. 通过 git reset --hard 回到合并前的状态
  2. 强制推送 develop_xxx 的状态到远程
  3. 重新创建 PR,并等待审核

这样,你可以消除直接合并的痕迹,重新通过 GitHub PR 流程进行代码审核。


要发起 PR 的正确方式:

如果你希望通过 PR 将 feature_branch 合并到 develop_xxx,不要直接合并和推送到 develop_xxx。你应该按以下步骤操作:

1. 确保 feature_branch 推送到了远程仓库

如果你的 feature_branch 还没有推送到远程仓库,请使用以下命令:

git push origin feature_branch

这会将本地 feature_branch 推送到远程仓库。

2. 创建 Pull Request (PR)

  • 登录 GitHub,进入你的项目仓库页面。
  • 点击 "Pull requests" 选项卡。
  • 点击 "New pull request" 按钮。

3. 选择分支进行合并

  • "base" 分支下拉框中,选择 develop_xxx(目标分支)。
  • "compare" 分支下拉框中,选择 feature_branch(要合并的分支)。

GitHub 会自动显示 feature_branch 相对于 develop_xxx 的差异。

4. 填写 PR 信息

  • 添加标题和描述,说明该 PR 的目的、解决的问题、以及任何需要特别注意的地方。
  • 点击 "Create pull request" 按钮。

5. 等待代码审核并合并

  • 团队成员可以查看 PR,评论或要求修改。
  • 如果 PR 通过审核,你或团队中的任何人都可以点击 "Merge pull request"feature_branch 合并到 develop_xxx

总结:

要通过 PR 进行团队审核,不要在本地直接合并并推送到 develop_xxx。而是:

  1. 推送 feature_branch 到远程。
  2. 在 GitHub 上发起从 feature_branchdevelop_xxx 的 PR。
  3. 让团队成员审核并合并。

通过这种方式,你的更改会经过团队审查,并且流程更清晰。