github中的pull request

本文通过类比考试场景解释了Pull Request的概念及其在开源项目中的应用。同时介绍了Git的基本远程同步指令,如fetch和pull的区别,帮助读者掌握贡献开源项目的流程。

百度知道的一个回答是:

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


知乎上beepony是这样回答的:

我尝试用类比的方法来解释一下 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 的过程就结束了。


作者:beepony
链接:https://www.zhihu.com/question/21682976/answer/79489643
来源:知乎
著作权归作者所有,转载请联系作者获得授权。



git指令  远程同步

# 下载远程仓库的所有变动

$git fetch [remote]

# 显示所有远程仓库

$git remote -v

# 显示某个远程仓库的信息

$git remote show [remote]

# 增加一个新的远程仓库,并命名

$git remote add [shortname] [url]

# 取回远程仓库的变化,并与本地分支合并

$git pull [remote] [branch]

# 上传本地指定分支到远程仓库

$git push [remote] [branch]


fetch同pull的区别在于:git fetch:是从远程获取最新版本到本地,不会自动merge 
  而git pull是从远程获取最新版本并merge到本地仓库 
  从安全角度出发,git fetch比git pull更安全,因为我们可以先比较本地与远程的区别后,选择性的合并。 
  git push 默认推送到master,如果有多个分支,则多个分支一起推送到远程 



<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]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值