git - GitHub 处理多拉请求的更好方法?
问题描述
我一直在使用一个开源项目,该项目需要将所有拉取请求 (PR) 推送到主分支。在发布新版本之前,不会合并所有 PR。假设我已经推送了一个 PR,并且想与一个新的 PR 合作。我需要删除前一个的所有代码。由于项目要求,我无法创建新分支。但是,如果我对这些代码做任何事情并推送到我的 fork,它会立即反映到我之前的 PR。为了避免影响,我必须先删除我当前的 fork,然后再 fork 新的 PR。它对我有用,但需要很多步骤,非常令人沮丧并且很难重新使用以前的 PR。
有更好的办法吗?谢谢
解决方案
过程中可能存在误解。您应该打开一个拉取请求以将分支合并到 master。您要合并的分支不应该是主分支。它应该是一个主题分支。请记住,合并需要两个分支:源分支和目标分支。
在拉取请求的情况下,目标分支是主分支。源分支不应该是你的 fork 中的主分支。它应该是你 fork 中的一个主题分支。
正确的流程是:
将原始存储库的 master 分支中的最新内容拉入 fork 中的 master 分支
# Configure remote from where you forked your repo (do this only once) git remote add upstream https://github.com/foo/bar.git # Do these steps before starting on a new feature git fetch upstream git checkout master git merge upstream/master git push origin HEAD
- 在你的 fork 上从 master 创建一个主题分支
git checkout -b feature master
- 尽可能多地工作和承诺
git commit -m "..."
- 将您的主题分支推送到 GitHub 上的 fork
git push origin -u HEAD
- 在原始存储库上提交拉取请求,以将 fork 中的主题分支合并到其存储库上的主分支
对您认为必要的尽可能多的拉取请求重复步骤 1-5。
拉取请求中的历史记录应该很明显,您的主题分支是否是最新的。如果他们的存储库要求您将您的master 合并到他们的master 以进行拉取请求,那么他们的流程就会中断。他们做错了,正是出于您在 StackOverflow 上提出问题的原因。
推荐阅读
- javascript - 在Javascript中解构函数参数
- android - 链接领域以响应本机后,应用程序不断停止
- html - 如何使用Angular.js根据列值对表格进行排序
- angular - Angular 7从firebase获取图像
- magento - PHP 致命错误:未捕获的错误:调用 public_html/lib/Varien/Simplexml/Config.php:510 中的未定义函数 simplexml_load_string()
- ios - 每台机器上缺少应用程序标识符和访问钥匙串组
- javascript - nodeJS - ioredis NPM 模块 - 订阅者事件有问题
- c# - 即使调试设置为 true,asp.net mvc 应用程序在生产中也会超时。谁可以帮我这个事
- python - 如何使图像插值到子图大小 matplotlib
- visual-studio - 在 Visual Studio 项目中添加 FFmpeg 库作为依赖项以摆脱 LNK2019 错误