给开源项目贡献代码

如何给开源项目贡献自己的代码?这里以一次真实的给阿里巴巴的seata提PR为例。

1.自己的项目拉取到本地

首先fork目标项目,这里是阿里的seata,fork到自己的仓库后,将项目拉取到本地。

wangzhongxiang@wang MINGW64 /g/mylearn
$ git clone git@github.com:lightClouds917/seata.git
Cloning into 'seata'...
remote: Enumerating objects: 55, done.
remote: Counting objects: 100% (55/55), done.
remote: Compressing objects: 100% (37/37), done.
remote: Total 14692 (delta 12), reused 30 (delta 4), pack-reused 14637
Receiving objects: 100% (14692/14692), 2.65 MiB | 1.52 MiB/s, done.
Resolving deltas: 100% (6070/6070), done.
Checking connectivity... done.
Checking out files: 100% (960/960), done.

wangzhongxiang@wang MINGW64 /g/mylearn

这里需要注意,设置自己的账号和邮箱!

git config user.name "wangzhongxiang"
git config user.email "1186355422@qq.com"

2.关联上游项目

这里的upstream,名称自己定义,为了通俗易懂,建议也以此命名。

G:\mylearn\seata>git remote add upstream git@github.com:seata/seata.git

G:\mylearn\seata>git remote -v
//本地地址
origin  git@github.com:lightClouds917/seata.git (fetch)
origin  git@github.com:lightClouds917/seata.git (push)
//上游地址
upstream        git@github.com:seata/seata.git (fetch)
upstream        git@github.com:seata/seata.git (push)

移除上游分支:git remote rm upstream

3.同步上游代码

防止你操作的过程中,上游有人提交变更了代码,我们再次同步下。

G:\mylearn\seata>git branch
* develop

G:\mylearn\seata>git pull upstream develop
From github.com:seata/seata
 * branch            develop    -> FETCH_HEAD
 * [new branch]      develop    -> upstream/develop
Already up-to-date.

4.提交本地修改

本地代码修改后,就该提交了。

G:\mylearn\seata>git add .

G:\mylearn\seata>git status
On branch develop
Your branch is up-to-date with 'origin/develop'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   core/src/main/java/io/seata/core/rpc/netty/NettyClientChannelManager.java


G:\mylearn\seata>git commit -am "NettyClientChannelManager#getExistAliveChannel()   check null channel"
[develop 98ea0d4] NettyClientChannelManager#getExistAliveChannel()   check null channel
 1 file changed, 1 insertion(+), 1 deletion(-)

G:\mylearn\seata>git push
Counting objects: 12, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (12/12), 894 bytes | 0 bytes/s, done.
Total 12 (delta 6), reused 0 (delta 0)
remote: Resolving deltas: 100% (6/6), completed with 6 local objects.
To github.com:lightClouds917/seata.git
   df7772a..98ea0d4  develop -> develop

G:\mylearn\seata>

5.提PR

在这里插入图片描述
这里可以看红框这里,就是我们刚提交到自己仓库的代码,上方有一个new pull request.点击这个按钮。
在这里插入图片描述
这时候跳到了上游仓库,会比对出两个仓库的区别,你修改的东西,如果没有问题,那点击绿色的Create pull request.
在这里插入图片描述
会让你填写一些内容,比如这个pr做了什么,是否测试等。然后点击右下方绿色按钮。
在这里插入图片描述
然后,你就安静的等待seata那边的具有权限的开发者去审核和通过吧。

6.多分支并行开发

1.从上游 dev分支拉取新的dev-01分支;

git checkout -b dev-01 upstream/dev

修改本地代码

git commit -am “add:add test dev-01”

再次拉取下上游代码,防止被人提交了
git pull upstream dev

2.将本地修改的代码推送到新的分支,并关联上游分支

git push -u origin dev-01

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页