多人协作开发流程
- A在自己的计算机中创建本地仓库
- A在GitHub上创建一个远程仓库
- A将本地仓库push到远程仓库
- B将远程仓库克隆到本地进行开发
- B将本地仓库中的内容推送到远程仓库
- A将远程仓库中最新的内容pull到本地
第1步在上一篇博客中有详细讲解,这里不再赘述,第2步请搜索“如何在GitHub上创建一个仓库”
第三步:如何将本地仓库push到远程仓库
事实上,当你在GitHub上创建仓库的时候,他就会告诉你如何将你的本地仓库推送到远程仓库,也就是GitHub上来,这里我们还是来看一下git命令:
git push 远程仓库地址 分支名称
但是如果每次推送都要输入远程仓库地址的话就太麻烦了,所以有一个办法,就是给这个地址添加一个别名,比方说这里我们给这个地址起一个名字,叫origin,那么git命令应该是这样的:
git remote add origin 远程仓库地址
这样我们之后在push的时候直接用origin来代替远程仓库地址就好了,即:
git push origin 分支名称
那么,有没有更方便一点的方法呢,其实是有的,就是当你在本地仓库中提交之后,在往GitHub上推送的时候加一个-u,这样他就会帮你记住你的仓库地址的信息以及你要推送的分支信息。当你下一次推送的时候只需要git push就好了,那第一次推送完整的步骤应该是这样的:
# 第一步:将有改动的文件添加到暂存区
git add 文件名
# 第二步:将该文件提交到本地仓库
git commit -m 吧啦吧啦吧啦
# 第三步:推送到远程仓库
git push -u 远程仓库地址 分支名称
# 这里主要是在第一次推送的时候加入-u参数,这样以后就直接提交到本地仓库然后git push就可以推送到远程仓库了
好的,那么我们现在知道怎么将自己本地的仓库push到远程仓库了,那么我们该如何进行多人协作呢?这里可以分为两种情况:
- 我们自己发起的项目,别人想要参加我们的项目
- 别人发起的项目,我们想要参加进去
首先我们来看第一种情况,别人想要参加我们的项目。
如果是认识的人,我们需要在GitHub的仓库中给他添加权限,操作步骤应该是:
Settings – Manage access – Invite a collaborate,如图所示:
添加之后应该会生成一个地址,把地址给他就好了。
还有一种情况就是别人fork了我们的项目,向我们发起pull request,这种情况我以第一人称来说明,也就是当我们想要参加到陌生人的项目中的时候。
第二种情况:我们想要参加到别人的项目中
如果我们跟原作者认识,就直接让他给我们添加权限就好了,可是大部分情况是我们并不认识,只是觉得他的项目很好,想要参与进去。这个时候我们就要按照下面的步骤操作:
- 找到我们感兴趣的项目A,点进去之后,点一个fork,这样就会把A项目复制到我们自己的远程仓库中
- 把远程仓库中的项目A克隆到我们的本地仓库,在本地仓库中修改
- 把本地仓库中的项目提交到远程仓库
- 发起pull请求,这里指的是向原作者仓库发起提交请求,步骤是Pull request – New pull request,然后选择你要提交的部分,同时也可以跟原作者说明你的改动以及你为什么要提交,如果原作者觉得没问题,就会给你合并到对应的分支上,如下图:
ssh免登录
这个功能是为了让你在往远程仓库中推送内容的时候避免输入账户密码的麻烦,他的原理就是在电脑上生成一对密钥,分为公钥和私钥,公钥要放到GitHub上,私钥则保存在自己的电脑里,这样在我们推送的时候,公钥和私钥就会进行配对,如果配对成功则可以推送,反之则不可以。在电脑上生成密钥的命令如下:
ssh-keygen
执行命令之后就会在你的电脑中生成一对密钥,Windows下这对密钥应该保存在了你的
C盘 --> 用户 --> 你电脑当前用户的名称 – > .ssh 文件夹下。这个文件夹不出意外的话里边有两个文件,如图所示:
其中id_rsa就是私钥,id_rsa.pub就是公钥,我们需要用记事本打开id_rsa.pub,然后将里边的内容复制到GitHub中,那么复制到什么敌方呢,我们往下看。
第一步,点击你的头像中的“settings”
第二步:点击“SSH and GPG keys”中的“New SSH key”
然后输入名称和公钥就好了。
总结:这些命令还是得多练习,我们看这种教程的目的不是为了看一遍就记住,而是大改知道有这么个功能,实际用到的时候,一搜索就什么都出来了。