本文主要讲一下参与github项目开发的步骤和涉及到的git命令,类似github的(比如gitee)也大同小异。前提肯定是要安装git,对git有一点基本的了解,这里不再赘述。
fork项目
一般的开源项目非项目的维护人员肯定是没有权限提交代码的,所以首先要fork一个项目在自己的代码库中,可以理解为做了一份拷贝。这个操作直接在站点上点击fork
就可以完成,很简单。fork完后就和你自己的项目一样了,将代码clone到本地。
同步项目更新
fork完后如果原项目有更新,肯定要对应的更新到自己的项目里来。有两种操作可以达到目的:
1、直接在站点上点pull request
,这种操作会多出一个merge commit,和原项目就不完全一致了,不推荐使用。如果你已经用过该操作,可以用以下命令强行还原自己的远程仓库:
- 随意回滚到一个以前的commit
git reset --hard <commit_id>
- 重新push到你的远程仓库
git push origin HEAD --force
2、通过git命令同步,推荐这种方法
- 添加原项目远程仓库地址,通常别名都用upstream。
git remote add upstream git@github.com:apache/dubbo.git
- 检出upstream分支以及更新
git fetch upstream
- 切到自己的分支并同步原项目对应分支,通常都是master分支
git checkout master
git merge upstream/master
- push到自己的对应分支
git push
提交自己的PR
通常来说要改代码都要新建一个分支,推荐是先在站点建一个issues,提出自己要的功能或者发现的bug,然后同步原项目代码后切一个分支出来,可以用对应issues的id做分支名。
修改代码后做常规的commit、push,然后去站点pull request,可以关联对应的issues。
网友评论