本文章需要阅读者有Git基础,如果不知道Git是什么或者不知道Git的基本操作的小伙伴可以先看一看我上一篇文章: Git 的介绍、安装及其基本操作
在上一节中我们学习了目前全球最流行的分布式版本控制工具 – Git的产生、安装以及基本使用,了解了如何通过Git进行版本控制,但是我们可以发现,在上一节中我们所有的操作都是在本地进行的(由工作区添加到暂存区,由暂存区提交到本地库),但是我们知道,在公司内部,一个项目的开发是由一个团队协作完成的,这种协作包括团队内协作和跨团队协作,那么如何实现团队协作呢?事实上,实现团队协作需要用到代码托管中心。
假设一个项目由A和B两个人组成的一个团队来共同开发,现在A实现了项目的基本框架,并把相关代码文件提交到了本地库,他希望B来完善该项目的细节,那么整个过程一共可分为四步:
假设现在有A和B两个团队合作开发一个项目,A团队负责项目的function1,B团队负责项目的function2,并且两个功能之间是相互关联交叉的,那么A团队和B团队协作的过程分为五步:
代码托管平台有很多,其中最常用、最流行的是GitHub、Gitee和Gitlab:
由于GitHub是国外的,所以在国内访问GitHub会出现速度慢以及连接失败的问题,我们可以选择Gitee来代替GitHub,但是由于使用GitHub的人数要远多于Gitee,且GitHub上的开源项目十分丰富,所以我们还是有必要掌握一些访问GitHub的方法,此问题的解决方法分为以下几种:
这里我为大家提供第四种解决方式的具体操作方法,这也是我本人一直在使用的;这种方法是我在逛Greasy Fork的时候无意间发现的,当时我是在浏览GitHub增强的脚本(脚本地址),然后看到作者在对该脚本的介绍中提供了访问GitHub的方法,其中介绍具体解决办法的文章如下:docmirror/dev-sideca(注意:由于这篇文章是在GitHub里面的,所以第一次可能会访问失败,多访问几次或者等几分钟再访问即可),请需要使用此方法的小伙伴仔细阅读该文章,特别是注意文章中提到的软件在打开状态中关闭电脑重启时会出现电脑无法正常上网的问题,虽然解决办法非常简单,但是如果不注意这个点的话可能让自己以为电脑出现了问题;另外由于在GitHub中下载该软件非常慢,速度只有几十KB,所以我把该软件放到了百度网盘中,有需要的自取。
百度网盘链接:https://pan.baidu.com/s/1edtD4fw5uPnOC2bS6OoZtA
提取码:yzpq
GitHub网址:GitHub: Where the world builds software · GitHub
进入GitHub后点击右上角的+号,然后选择New repository
填写仓库名称,仓库性质建议设置为公开
在远程库创建成功后,我们把远程仓库的HTTPS地址复制下来,然后在Git管理文件中打开Git,使用 “git remote add 别名 仓库地址” 命令来创建仓库的别名,别名创建成功后,我们可以通过 “git remote -v” 来查看别名。(注意:粘贴远程库网址的时候不能用Ctrl+V,因为Git的指令与Linux是一样的)
在上一节关于Git的介绍中我们已经把测试代码git_test添加至暂存区、提交到本地库了,现在我们只需要通过 “git push 仓库别名 分支名” 命令来把本地库中的代码推送到GitHub中的建立的远程库中。
我们输入命令后它弹出提示,让我们登录GitHub账号,点击第一个登录即可。
登录账号之后,显示推送成功。
推送成功之后,我们刷新GitHub仓库,就会发现我们推送的git_test代码。
我们可以在家中登录GitHub修改我们远程库里面的代码,回到公司之后,再拉取远程库中的代码来更新本地库,从而实现随时随地办公。
远程库修改完毕后,我们就可以通过拉取操作来更新公司电脑的本地库代码,拉取命令和推送命令格式一样:“git pull 仓库别名 分支名”
我们可以通过克隆操作克隆GitHub上公开仓库中的代码,这里我以在GitHub随便搜的一个五子棋游戏代码为例:我们搜索五子棋游戏,然后随便点击一个,复制该代码HTTPS链接,然后在Git里面使用 “git clone 链接” 操作来克隆代码。
clone会进行如下操作:1、拉取代码 2、初始化本地库 3、创建别名(origin)
首先,我们要创建SSH公钥:
我们在Windows家目录下打开GIt Bush Here ,输入 “ssh-keygen -t rsa -C 邮箱” 来生成.ssh秘钥目录,其中rsa是一种非对称加密协议,-C(大写)是用来指定账号;输入之后,连续敲击三次回车即可;执行成功后就会在家目录下生成一个.ssh文件。
然后我们打开id_rsa.pub文件(即公钥文件),复制里面的内容,在我们GitHub账号的设置里面找到SSH and GPG keys进行添加。
利用SSH来拉取以及推送代码时不必每次都输入密码,可以大幅提高工作效率;但是如果要测试我自己账号的SSH免密登录是否有效的话,需要另外一个账号,所以我这里就不在进行演示了,大家只需要在pull以及push的时候把HTTPS的地址换成SSH的地址即可。
众所周知,GitHub服务器在国外,使用GitHub作为项目托管网站,如果网速不好的话,严重影响使用体验,甚至会出现登录不上的情况。针对这个情况,大家也可以使用国内的项目托管网站-码云。
码云是开源中国推出的基于Git的代码托管服务中心,网址是 ,使用方式和GitHub一样,而且它还是一个中文网站,如果你英文不是很好它是最好的选择。
点击进入Gitee官网:Gitee - 基于 Git 的代码托管和研发协作平台,然后登录或者注册账号。
由于码云完全是仿照GitHub开发的,使用起来与GitHub几乎没有区别,使用后面的系列操作我就不再进行文字描述了,而是直接上流程图。这里要特别注意:现在码云经过更新后,不能直接把仓库设置为公开,需要先设置为私有,只有等我们往仓库推送一定数量代码后,才能申请仓库公开。
拉取远程库到本地库以及克隆远程库到本地库和GitHub操作一样,这里我就不再演示。
由于在刚才GitHub的演示中我已经生成了.ssh文件,所以这里我就直接用id_rsa.pub在Gitee的设置里面添加SSH公钥
为了避免GitHub登录不上使得项目无法查看的情况,码云提供了直接把GitHub仓库复制迁移到Gitee的方法,这里我们以刚才在GitHub中创建的daily-study仓库为例:我们点击新建仓库,点击导入已有仓库,然后输入GitHub仓库的HTTPS网址即可。我们还可以通过点击小圆圈刷新来获取GitHub远程库中的最新状态来同步仓库。