Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
github的多人协作?how to 贡献代码?

github的多人协作

  1. github上你可以用别人的现成的代码 直接 git clone 即可了

  2. 然后你也想改代码或者贡献代码咋办?

Fork

从别人的项目中fork一个到你自己的仓库 这个时候这个仓库就是你的了,要删除这个仓库到设置-admin 那里,像你删除你自己创建的repo一样删除,(因为这个库就是你的了,你现在可以任意修改这个库,除非你pull request被接受否则你 不会对原作者的库产生任何影响)

比如osteach账号下有个osteach.github.com的库 这个项目的地址是https/github.com/osteach/osteach.github.com

这时候我(suziewong)想贡献代码了。fork之 fork之后,你的个人仓库就多了这个库 https://github.com/suziewong/osteach.github.com

开发并且提交代码

clone

首先要从github上下载代码到本地,你需要执行如下命令:

git clone https://github.com/suziewong/osteach.github.com.git 
cd osteach.github.com

然后代码到本地里了,你就可以各种修改 add commit 了

commit

当你修改代码之后,需要commit到本地仓库,执行的命令如下:

git add xx
git commit  -m '修改原因,相关说明信息'

push

执行git commit之后,只是提交到了本机的仓库,而不是github上你账号的仓库。你需要执行push命令,把commit提交到服务器。

这里你可以直接git push 木有问题直接到远程默认仓库,当然remote add 也木有问题,因为和操纵自己的库没有任何区别
git push
这里的git push  指的是push 到suziewong/osteach.github.com 的默认仓库(master)

这里有重点

这里你如果 remote add osteach osteach/osteach.github.com.git
好吧,你 
git push osteach master 之类的都是没用的
因为你没有权限!没有权限修改别人(osteach)的库!

上游仓库

添加远程仓库

git remote add origin https://github.com/suziewong/osteach.github.com.git 

更新远程代码: 好吧,这里得分2种情况 1.拉取自己的库的最新的代码到本地(这个其实和操纵自己的库没撒区别)

git pull 

2.你正在开发,主作者【项目负责人】osteach也在开发,你当时fork的代码已经不是osteach的最新的代码了。 这时候的你对你的代码肯定没问题,但是pull request 就有可以会出错,因为你fork的repo和现在的osteach的repo已经不一样了。 这时候理论上osteach会close你的request,让你先pullosteach的最新代码。 于是乎 git remote add osteach osteach/osteach.github.com.git git fetch osteach master:develop

自己merge代码 不和谐的地方,这里肯定不能git pull,会提示conflict 即代码是需要自己merge的

你修改代码后

git add 
git commit

然后测试一下是不是已经拉取完成最新的了。

git pull osteach master 

你就会发现原先的出错不见了,变成了**everything update **

你就可以提交到自己的远程版本库了。 git push origin master

之后你再pull request,osteach那边就木有出现 不能 auto merge的情况了,然后osteach看你的代码给不给力, 给力就merge你的代码到他的主分支去了。 功德圆满 :)

pull request

登陆github,在你自己的账号中的仓库中点击pull request,就会要求你输入pull request的原因和详细信息,你确认之后。osteach的owner就会收到并且审查,审查通过就会合并到主干上。

@belm

This comment has been minimized.

Copy link

commented Oct 15, 2013

very good

@Charles0429

This comment has been minimized.

Copy link

commented Dec 2, 2013

请问下这个pull request是直接提交到主仓库的master里面吗?(假设主仓库管理员通过pull request了),如果我想在主仓库里面分为两个分支:master和develop,这时候我fork主仓库的代码,写完自己的代码,再pull request的时候会不会默认到master里面啊?

@vfhky

This comment has been minimized.

Copy link

commented Feb 14, 2014

git remote add origin https://github.com/suziewong/osteach.github.com.git
这句话不用加了,因为git clone已经在本地默认了origin。

@ghost

This comment has been minimized.

Copy link

commented Jun 3, 2014

没看懂。

@timerlau

This comment has been minimized.

Copy link

commented Jul 20, 2014

有点不知所云~为什么本地服务器搭建GIT那么方便、到GITHUB上这么复杂呢~没用过request

@chesterlee

This comment has been minimized.

Copy link

commented Jul 31, 2014

都是干货

@wzyuliyang

This comment has been minimized.

Copy link

commented Mar 2, 2015

very nice

@chen2aaron

This comment has been minimized.

Copy link

commented May 12, 2015

浅显易懂~ Thanks

@liango2

This comment has been minimized.

Copy link

commented Nov 7, 2015

看懂了,谢谢,干货,对我有用👍

@Timmy2015

This comment has been minimized.

Copy link

commented Nov 8, 2015

不是很懂!
怎么和别人(主代码创建者)的库关联起来?
是不是要把自己的公钥放在别人的ssh key里才可以关联起来啊?

@596611561

This comment has been minimized.

Copy link

commented Feb 5, 2016

非常浅显易懂,解决了我的疑惑

@su710347

This comment has been minimized.

Copy link

commented May 16, 2016

我咋没看明白呢,点了pull requests,然后怎么搞啊?

@mrhyh

This comment has been minimized.

Copy link

commented Jun 16, 2016

我pull requests,然后主代码创建者也加入master了,他的项目获得了star,我的star会增加吗?

@yangchangming

This comment has been minimized.

Copy link

commented Sep 14, 2016

写的干脆直接不罗嗦!

@wzhhou

This comment has been minimized.

Copy link

commented Sep 16, 2016

Thanks a lot

@wuwujun

This comment has been minimized.

Copy link

commented Oct 22, 2016

如果有人给我发了pull request到master分支,但是我想将这个request的内容合并到另一个分支而不是master分支,应该怎么做呢

@liyi-1989

This comment has been minimized.

Copy link

commented Dec 14, 2016

问下git fetch osteach master:develop 这一步,master和develop是谁的?把osteach的哪个分支fetch到本地的哪个分支?谢谢!

@wendellou

This comment has been minimized.

Copy link

commented Jan 12, 2017

http://www.cnblogs.com/kidsitcn/p/5319282.html

感觉这个解析的更清楚一些。

@limengyi

This comment has been minimized.

Copy link

commented Oct 19, 2017

想问,为什么我github 上传了代码变化,我的同伴看不到,但他可以看到我建的共享文件夹?

@Zlase0820

This comment has been minimized.

Copy link

commented Feb 27, 2018

非常感谢,都是干货,新人表示受益匪浅

@gabearwin

This comment has been minimized.

Copy link

commented May 31, 2018

很给力,“上游仓库”那一段很精彩,解决我的疑惑了。感谢!

@Oliwans

This comment has been minimized.

Copy link

commented Sep 14, 2018

感谢,解决了我的问题,一直不清楚本地连接别人的远程库有什么用,原来是为了更新主库的代码,不知道连接别人远程库还有没有其他的用途。。。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.