今天和小伙伴想共同维护一个仓库,于是我们尝试了collaborator这种方式,从发起者的角度来说,就是在仓库的设置中将我设置为collaborator,然后系统会给我发送一个邀请的邮件,当我点了同意以后,我的github界面就会出现这个仓库。

但是注意,这里的出现的意思是,只是出现,并不是fork的,也就是说在你自己的github中是找不到这个仓库的。这篇博客就是以collaborator的角度来看看都需要进行哪些操作。

一、初始化仓库

这是我们参与项目的第一步,因为只有自己有一个本地仓库,才可以实现后面的克隆以及上传代码的功能。初始化仓库也很简单,就是新建一个文件夹,然后在文件夹内通过命令行输入:git init就可以。

这里推荐使用命令行的方式进行使用有,一来命令行的形式在win和ubuntu下都是通用的,第二也可以让我们更加了解git内部是怎么工作的。

二、配置用户和邮箱

由于我们要与一个远端仓库进行交互,因此需要设置一下自己仓库的信息,便于在与远端交互时能够了解自己的身份,像是一个身份证。

这两步的代码如下:

git config --global user.email "xxx" 
git config --global user.name"xxx" 

三、设置ssh公钥

这一步是非常关键的一步。在一般的使用过程中,我们的步骤是怎样的呢?

首先输入命令:

ssh-keygen -t rsa -C "xxx"(你的邮箱地址) 

然后就会在你设置的位置,当然如果在生成公钥过程中你都是选择默认回车,那就是在    路径下生成私钥和公钥,公钥是id_rsa.pub,私钥是id_rsa。我们一般会将公钥放入自己的仓库中,然后就相当于让自己的本地仓库与自己远端仓库互相承认了对方的身份。

欸?有没有发现什么?对,这里我们说的是让自己本地仓库与自己的远端仓库,那这样的话,显然就不能与发起者的仓库进行交互啊。

因此我们的公钥就要与发起者的的仓库进行认证对不,于是我们就会想,要不就把自己的ssh公钥给发起者,让他把我的ssh公钥添加到他的认证里是不是就可以了呢?

是的,这样是可以的,但是我们要知道,这样直接将自己的ssh公钥绑定发起者的github就意味着,我除了可以操作我们共同维护的仓库外,其他他的所有仓库我都可以随意修改。

因此这里我们不能这么做[也就是说不要用上面这种添加的方法],而要用下面这种:

那就是自己的公钥不能与自己的github绑定,同时也不与发起者的github直接绑定,而是发起者在项目设置里的deploy key中将我的公钥填进去。

这样就实现了我的本地仓库和发起者的远端仓库同步了。

四、项目克隆

这里需要的就是不能用http的方式进行git clone,而要用ssh方式的地址:

五、git push

刚才我们已经和远端的发起者的仓库进行认证了,那么现在我们就需要在自己电脑上配置这个远端仓库了。

git remote add origin git@github.com:xxx.git

关联远端仓库以后,就可以进行git push了,和正常的git push环节差不多

首先将自己本地的分支和远端分支关联

git push --set-upstream origin xxx(这是本地分支,要注意要和你clone下来的分支的分支名一致)

还有一点需要注意:git push的时候要在你clone下的仓库代码文件夹 下!    下!  下!

六、关于collaborator模式

Team共同开发项目有好几种方式,比如collaborator,比如建立组织等。那关于collaborator这种方式来说,由于是collaborator,也就是共同开发,因此在你git push 以后不会有发起者merge的过程,而是自己也是共同参与者,可以直接去修改仓库中代码。

最后,本文只是介绍了关于怎么作为collaborator参与到项目中的关键步骤,还有一些基础命令需要也是需要多练习才可以的。总之,Git是一个好工具,希望大家好好掌握。

May the force be with you !