当前位置:   article > 正文

如何为Github开源项目提交PR完整版_github fork之后怎么往主分支提交pr

github fork之后怎么往主分支提交pr

1. Fork代码到自己的repository

打开https://github.com/Repo-Name/Project-Name
登录Github账号
点击右上角的Fork
fork
稍等片刻,即可fork一个分支到自己的repository
之后再本地运行

git clone https://github.com/Your-Repo-Name/Project-Name.git
  • 1

即可将fork出来的repostitory clone到本地

但若你自己的repository还保留有之前fork过的版本,则需要你手工更新fork的版本,才能与原来的版本保持同步

2. 更新Fork版本与最新版同步

这里引用的是来自[1]的回答

git remote add upstream https://github.com/whoever/whatever.git

# Fetch all the branches of that remote into remote-tracking branches,
# such as upstream/master:

git fetch upstream

# Make sure that you're on your master branch:

git checkout master

# Rewrite your master branch so that any commits of yours that
# aren't already in upstream/master are replayed on top of that
# other branch:

git rebase upstream/master

git push -f origin master
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

3. 本地更改代码并提交

一般分六步:
创建分支;修改代码;git add;git commit;git push;发起PR

  1. git checkout -b 分支名
  2. 修改代码
  3. git add .
  4. git commit -a -m “问题描述”
  5. git push
    此时,git会自动给出提示,告诉你向哪里push,复制粘贴就好
  6. 到Github自己的repository中,点击PR按钮就可以了。其实如果是刚提交,屏幕中会有提示PR的链接,点击该链接就可以了
    pr
    最后,按要求填写PR的相关信息,提交PR,之后就是等待测试通过和开发者的confirm和merge了

注意:提交代码一定要遵循开源项目提供的规范,无论是代码格式、分支/commit信息、还是PR或issue的格式,一定不能少。
比如,

  1. 在修改代码后按规范的要求,在本地测试、代码format等都完成后,再提交。除此之外,要仿照项目 之前的代码风格和注释,不要另搞一套。
  2. 有的开源项目要求commit名是“目录名: 解决问题的描述”,甚至对branch名也有一定要求
  3. 有的开源项目要求签上您的大名,git commit -s “commit message”,如果忘记,bot会提醒你;有的网站会明确表示不要签名,一定要看清楚
  4. 有的网站还会要求先签署协议,一般按照bot提示来做就好
  5. 即使没有明确说明,一个PR最好也只用来解决一个/一类明确的问题,有的项目会限制一个PR中最好只保留一个commit,下面我们来看下怎么合并commit

4. 提交出错了怎么办

即使在线测试出错,不要慌张,点击查看日志,很多其实与你提交的代码无关,只是不过是测试系统或其他代码的bug,开发者那边也会检查确认的。
如果真的是自己的错误,或者开发者有其他要求,需要你修改代码,那么此时本地可能会产生两个甚至更多commit,最好将其合并起来。

git rebase -i HEAD~2
  • 1

以上命令可以合并最近两个commit
然后在交互式文本编辑器中,
把不想保留的commit从pickup改为squash,然后修改下commit message就可以了

如果仅仅是commit message需要修改,那只要git commit --amend

最后不要忘记

git push -f
  • 1

强制提交,这样PR就会收到新的commit,然后开始重新测试

5. 大多数开发者是友好的,要始终保持积极的态度

多数开发者会积极回复、沟通。但开发者也有很多难处,可能很久都没能答复,这时请不要着急,耐心等待几周。
比如,开发者刚冻结代码准备发布新版本之类的。越是大的项目,review的时间就越久。当然也有可能是项目年久失修或人手不足,实在等不及的话,再直接向开发者询问。

最后,祝愿大家在为开源项目做贡献的过程中,能够找到自己的乐趣。

[1] https://stackoverflow.com/questions/7244321/how-do-i-update-a-github-forked-repository

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/571302
推荐阅读
相关标签
  

闽ICP备14008679号