github 中的pull request

本文详细介绍了如何使用GitHub发起Pull Request (PR)以贡献代码至开源项目。包括Fork项目、本地进行修改、提交更改及向原项目发起合并请求的全过程。

原文转自知乎,侵删

原文链接:https://www.zhihu.com/question/21682976


有一个仓库,叫Repo A。你如果要往里贡献代码,首先要Fork这个Repo,于是在你的Github账号下有了一个Repo A2,。然后你在这个A2下工作,Commit,push等。然后你希望原始仓库Repo A合并你的工作,你可以在Github上发起一个Pull Request,意思是请求Repo A的所有者从你的A2合并分支。如果被审核通过并正式合并,这样你就为项目A做贡献了。


我尝试用类比的方法来解释一下 pull reqeust。想想我们中学考试,老师改卷的场景吧。你做的试卷就像仓库,你的试卷肯定会有很多错误,就相当于程序里的 bug。老师把你的试卷拿过来,相当于先 fork。在你的卷子上做一些修改批注,相当于 git commit。最后把改好的试卷给你,相当于发 pull request,你拿到试卷重新改正错误,相当于 merge。

当你想更正别人仓库里的错误时,要走一个流程:
  1. 先 fork 别人的仓库,相当于拷贝一份,相信我,不会有人直接让你改修原仓库的
  2. clone 到本地分支,做一些 bug fix
  3. 发起 pull request 给原仓库,让他看到你修改的 bug
  4. 原仓库 review 这个 bug,如果是正确的话,就会 merge 到他自己的项目中
至此,整个 pull request 的过程就结束了。

理解了 pull request 的含义和流程,具体操作也就简单了。以 Github 排名最高的 github.com/twbs/bootstr 为例说明。
1. 先点击 fork 仓库,项目现在就在你的账号下了

2. 在你自己的机器上 git clone 这个仓库,切换分支(也可以在 master 下),做一些修改。
~  git clone https://github.com/beepony/bootstrap.git
~  cd bootstrap
~  git checkout -b test-pr
~  git add . && git commit -m "test-pr"
~  git push origin test-pr


3. 完成修改之后,回到 test-pr 分支,点击旁边绿色的 Compare & pull request 按钮


4. 添加一些注释信息,确认提交


5. 仓库作者看到,你提的确实是对的,就会 merge,合并到他的项目中

【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储大学数据】(Matlab代码实现)内容概要:本文提出了一种基于融合鱼鹰和柯西变异的麻雀优化算法(OCSSA)优化变分模态分解(VMD)参数,并结合卷积神经网络(CNN)与双向长短期记忆网络(BiLSTM)的轴承故障诊断模型。该方法利用西储大学公开的轴承数据集进行验证,通过OCSSA算法优化VMD的分解层数K和惩罚因子α,有效提升信号分解精度,抑制模态混叠;随后利用CNN提取故障特征的空间信息,BiLSTM捕捉时间序列的动态特征,最终实现高精度的轴承故障分类。整个诊断流程充分结合了信号预处理、智能优化与深度学习的优势,显著提升了复杂工况下轴承故障诊断的准确性与鲁棒性。; 适合人群:具备一定信号处理、机器学习及MATLAB编程基础的研究生、科研人员及从事工业设备故障诊断的工程技术人员。; 使用场景及目标:①应用于旋转机械设备的智能运维与故障预警系统;②为轴承等关键部件的早期故障识别提供高精度诊断方案;③推动智能优化算法与深度学习在工业信号处理领域的融合研究。; 阅读建议:建议读者结合MATLAB代码实现,深入理解OCSSA优化机制、VMD参数选择策略以及CNN-BiLSTM网络结构的设计逻辑,通过复现实验掌握完整诊断流程,并可进一步尝试迁移至其他设备的故障诊断任务中进行验证与优化。
<think>好的,用户想知道如何在GitHub上撤销已提交的Pull Request。首先,我需要确认用户的需求是关闭或取消一个已经创建的PR。根据之前的引用,比如引用[2]提到处理PR的速度可能受项目维护情况影响,但这里用户可能更关注如何自己操作撤销。 首先,PR的撤销通常有两种情况:关闭或删除。关闭的话,维护者或者PR的创建者都可以操作,但如果是彻底删除分支,可能需要更多的步骤。根据GitHub的流程,关闭PR相对直接,用户可以在PR页面找到关闭按钮。如果是自己创建的,可以直接关闭;如果是他人仓库的,可能需要维护者处理。 另外,用户可能需要撤销相关的提交。如果PR合并前需要修改,通常建议在分支上继续提交,然后推送到远程,PR会自动更新。但如果是撤销整个PR,可能需要关闭后删除分支。这里要注意,删除分支会影响其他协作者,如果有其他人基于该分支工作的话。 然后,我需要检查是否有相关的引用内容可以支持回答。引用[5]提到了暂存文件的步骤,但和撤销PR无关。其他引用可能没有直接关联,但引用[2]提到的PR处理情况可以作为补充,说明处理PR的注意事项。 接下来,用户可能的疑问点包括:关闭PR后分支如何处理,是否需要删除分支,关闭后能否重新打开,以及如何确保代码不被合并。需要分步骤说明关闭的方法,包括界面操作和命令行操作(如果需要)。同时,提醒用户在关闭后删除分支可以保持仓库的整洁,但非必须。 还要注意权限问题,PR创建者是否有权限关闭,或者是否需要仓库维护者的操作。此外,如果PR已经被合并,关闭可能不再适用,而是需要回滚代码,这可能需要其他操作,比如revert commit。 最后,确保回答清晰,分步骤说明,并涵盖常见问题和注意事项。可能还需要生成相关问题,比如如何修改已提交的PR,或者处理合并后的撤销,但根据用户当前问题,应集中在关闭和撤销PR的基本步骤。</think>### 如何在GitHub上撤销或关闭Pull Request #### 1. **关闭Pull Request** - **步骤:** 1. 进入GitHub仓库的Pull Request页面。 2. 找到需要关闭的Pull Request,点击进入详情页。 3. 在页面底部找到 **“Close pull request”** 按钮并点击。 4. 系统会提示确认,确认后该Pull Request状态变为“Closed”,且不再可合并。 - **权限说明:** - **创建者**:可随时关闭自己提交的Pull Request。 - **仓库维护者**:有权关闭任何用户提交的Pull Request[^2]。 #### 2. **删除关联分支(可选)** 若Pull Request关联的分支不再需要,可删除该分支以保持仓库整洁: 1. 在关闭Pull Request后,页面会显示 **“Delete branch”** 按钮(仅当分支无其他用途时出现)。 2. 点击按钮即可删除关联的分支。 #### 3. **通过命令行撤销(高级场景)** 如果已推送的代码需要修改,可本地回退提交后强制推送: ```bash # 回退到指定提交 git reset --hard <commit-hash> # 强制推送以覆盖远程分支 git push origin <branch-name> --force ``` **注意**:强制推送会影响协作者,需谨慎使用[^5]。 #### 4. **重新打开已关闭的Pull Request** 若误关闭,可点击 **“Reopen pull request”** 恢复(需有权限)。 #### 注意事项 - 关闭Pull Request不会删除提交记录,仅标记为不可合并。 - 若Pull Request已被合并,需通过回滚代码(如`git revert`)撤销更改[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值