2

如何为 Github 开源项目贡献代码

 2 years ago
source link: https://sxy91.com/posts/pull-request/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

如何为 Github 开源项目贡献代码

2022-04-15 宋洋葱 宋洋葱

什么是 pr(pull request)

参考 Pull Request 的命令行管理

“Pull Request 是 github 的一种通知机制。你修改了他人的代码,将你的修改通知原来的作者,希望他合并你的修改,这就是 Pull Request。”

一、fork 原作者的项目

假设 someone 有个项目 demo

由于没有对 demo 的直接 push 权限,我们需要先对 demo 库进行 fork,然后从自己的地址 clone。

git clone [email protected]:yourname/demo.git
someone

二、与原作者仓库进行拉取和推送关联

为了保证我的代码和原作者实时同步(原作者的改动我们也能拉取,我们的修改也能推送到原作者仓库),需要进行 关联。

clone 项目到本地后,进入 demo 目录,添加一个新的推送地址,取名叫 upstream(代表原作者的仓库) 。

cd ~/demo
git remote add upstream [email protected]:someone/demo.git

使用 git remote -v 查看此时有两个推送和拉取地址。

origin	[email protected]:username/demo.git (fetch)
origin	[email protected]:username/demo.git (push)
upstream	[email protected]:someone/demo.git (fetch)
upstream	[email protected]:someone/demo.git (push)

三、切换 dev 分支

根据原作者的说明,一般需要在 dev 分支进行修改和提交 pr。

先查看远程仓库里有哪些分支 git branch -r

  origin/HEAD -> origin/master
  origin/develop
  origin/master
  upstream/develop
  upstream/master

切换到 develop 分支,并跟踪远程分支。

git checkout –track origin/develop

--track 参数的作用是,下次 push 的时候直接推送到与你关联的远程分支上,不用再次指定了。否则会推送到 HEAD 指定的分支上。 也可以直接用 -t 参数

当前也许你 clone 之后好几天没动代码,此时原作者仓库可能已经有变动了,如果想拉取原作者的变动,那我们可以使用 git fetch upstream 命令

使用 git 终端切换分支需要敲很多命令,推荐使用 gui 程序拉取和切换分支,比如 sourcetree

四、修改代码并提交

git add -A
git commit -m “你提交的说明”
git push 
# 如果 checkout 的时候没有 -t 参数,那么 push 的时候需要指定远程分支名称 
# git push origin develop

五、填写 pr 的说明

到 github 项目的仓库地址即可查看到有 pr 可以填写,一般需要填写为什么改动,改动了哪些地方等信息,填写完之后保存,原作者即可收到合并提交的请求,如果他同意,那么你的代码将会合并。

来发评论吧~
Powered By Valine
v1.4.18

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK