Git版本控制:Github的使用之 多人协作及参与项目
版权声明:本文为博主皮皮http://blog.csdn.net/pipisorry原创文章,未经博主允许不得转载。
http://blog.csdn.net/pipisorry/article/details/45532883
本文是关于如何创建一个github项目,让多人团队共同开发一个项目。
Git多人协作
首先在github上创建一个repository项目,当然根据[Git版本控制教程 - Git远程仓库]自己可以随便将本地修改push到github上。
对于其它合作者,只要将其加入到项目合作者中来就可以了:打开repository,点击settings,选择collaborators,在搜索框中搜索合作者账号,然后add,这样项目合作者就可以push代码到项目中来了。
多人协作项目中的分支设置参考[Git分支处理]和[github 多人协作]。
这样之后就可以不用下面介绍的fork+pull request的方式了,省了项目主管的确认这一步。
从远程库克隆
先创建远程库(或者使用别人已有的远程库),然后从远程库克隆
登陆GitHub > 创建一个新的仓库,名字***_workspace
>
Initialize this repository with a README可选可不选,选的话
GitHub会自动为我们创建一个README.md
文件,创建完毕后,可以看到README.md
文件:
远程库已经准备好了,用命令Git clone
克隆一个本地库:
$ git clone git@github.com:pplove/***_workspace.git
Cloning into '***'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
$ cd ***
$ ls
README.md
如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。
Note:
1. git clone默认会把远程仓库整个给clone下来,但只会在本地默认创建一个master分支,如果远程还有其他的分支,此时用git branch -a查看所有分支
2. GitHub给出的地址不止一个,还可以用https://github.com/pplove/
这样的地址。实际上,Git支持多种协议,默认的workspace
.gitgit://
使用ssh,但也可以使用https
等其他协议。
使用https
除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh
协议而只能用https
。
3. clone下来的是一个目录,所以clone时的当前目录可以是根目录
4. colon的项目可以是别人github上的项目,不需要授权、密码等
皮皮Blog
使用GitHub参与开源项目-fork + pull request
我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。
在GitHub出现以前,开源项目开源容易,但让广大人民群众参与进来比较困难,因为要参与,就要提交代码,而给每个想提交代码的群众都开一个账号那是不现实的,因此,群众也仅限于报个bug,即使能改掉bug,也只能把diff文件用邮件发过去,很不方便。
但是在GitHub上,利用Git极其强大的克隆和分支功能,人们群众真正可以第一次自由参与各种开源项目了。
如何参与一个开源项目?
比如人气极高的bootstrap项目,这是一个非常强大的CSS框架,你可以访问它的项目主页https://github.com/twbs/bootstrap,点“Fork”就在自己的账号下克隆了一个bootstrap仓库,然后,从自己的账号下clone:
git clone git@github.com:pplove/bootstrap.git
一定要从自己的账号下clone仓库,这样你才能推送修改。如果从bootstrap的作者的仓库地址git@github.com:twbs/bootstrap.git
克隆,因为没有权限,你将不能推送修改。
Bootstrap的官方仓库twbs/bootstrap
、你在GitHub上克隆的仓库my/bootstrap
,以及你自己克隆到本地电脑的仓库的关系图:
如果你想修复bootstrap的一个bug,或者新增一个功能,立刻就可以开始干活,干完后,往自己的仓库推送。
如果你希望bootstrap的官方库能接受你的修改,你就可以在GitHub上发起一个pull request。当然,对方是否接受你的pull request就不一定了。
fork一个项目后如何删除?
点击选择fork的项目 > 进入后点击Settings标志 > 点击Delete this repository > 确认要删除的repository名字,选择”I understand the consequences,delete this repository”
github的pull request
有一个仓库,叫Repo A。你如果要往里贡献代码,首先要Fork这个Repo,于是在你的Github账号下有了一个Repo A2,。然后你在这个A2下工作,Commit,push等。然后你希望原始仓库Repo A合并你的工作,你可以在Github上发起一个Pull Request,意思是请求Repo A的所有者从你的A2合并分支。如果被审核通过并正式合并,这样你就为项目A做贡献了。
如上图,pull request的时候,注意base fork(你的)和base分支,以及要别人接受的那个人的head fork和compare分支。
关注别人的项目
(变化或者说是收藏)
进入别人的项目
将上图中的unwatch改为watch
这样在自己的github上就可以通过进入看到自己关注的项目
from:http://blog.csdn.net/pipisorry/article/details/45532883