1. 远程仓库介绍
前面的关于git的操作,都是基于本地仓库进行操作的。
但是如果我们想通过 Git 分享自己的代码或者与其他开发人员合作,这时我们就需要将数据放到一台其他开发人员能够连接的服务器上,这台服务器就是代码托管中心,或者说是远程仓库。
本地和远程仓库的操作大致如下图所示:
我们有两种两种方式搭建代码托管:
- 只在局域网中(就是不能访问百度等外网),那么我们可以选择某一台电脑作为服务器,然后使用 Gitlab 来自己搭建一个代码托管中心;
- 可以访问外网的情况下(就是可以访问百度、谷歌等网站),那么可以选择 gitee 、 github 等第三方的代码托管中心。
2. github和gitee简介
2.1 github
github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。github就是一个典型的第三方代码托管平台。
Github 由Chris Wanstrath, PJ Hyett 与Tom Preston-Werner三位开发者在2008年4月创办。
今天,GitHub已是:
- 一个拥有143万开发者的社区。其中不乏Linux发明者Torvalds这样的顶级黑客,以及Rails创始人DHH这样的年轻极客。
- 这个星球上最流行的开源托管服务。目前已托管431万git项目,不仅越来越多知名开源项目迁入GitHub,比如Ruby on Rails、jQuery、Ruby、Erlang/OTP;近三年流行的开源库往往在GitHub首发,例如:BootStrap、Node.js、CoffeScript等。
- alexa全球排名414的网站。
github官网:
https://github.com/
首次打开github官网时,会默认打开注册页面,然后我们直接使用邮箱注册就好,注册完之后就可以创建远程仓库等操作了。
2.2 gitee
gitee(码云)是开源中国社区推出的代码托管协作开发平台,支持Git和SVN,提供免费的私有仓库托管。
其作用和github差不多,都是第三方代码托管平台。
gitee官网:
https://gitee.com/
3. 本地仓库和gitee远程仓库协作
这里以gitee作为远程仓库,和本地git进行协作。
3.1 在本地新建一个git仓库
先在本地任何一个目录下,创建一个本地的git仓库:
3.2 创建远程仓库
1、在gitee网站首页,左侧可以点击创建仓库。
2、填写远程仓库的基本信息:
3、远程仓库创建成功:
3.3 给远程仓库取别名
创建完远程仓库之后,就会有对应的远程仓库地址,而且gitee支持多种协议,比如 https、ssh 等。
我们对远程仓库的操作,比如拉取远程仓库代码,推送本地代码到远程仓库,我们都可以使用刚刚创建的仓库对应的地址进行操作。
但是如果操作该仓库很频繁,每次操作远程仓库都要带上对应的地址很麻烦,所以我们可以给这个仓库取一个别名。
命令如下:
git remote add <别名> <远程库地址>
比如,刚刚创建的远程仓库,我取个别名叫 “gitee_test”,到时候对这个远程仓库的操作就可以直接使用这个别名替代了。
操作如下:
取了别名之后,我们可以使用下面命令查看本地仓库配置了多少远程仓库:
git remote -v
3.4 拉取(pull)远程仓库
本地仓库拉取远程仓库的内容(本地仓库 <---- 远程仓库),就是同步远程仓库内容到本地仓库,命令如下:
git pull <远程库地址名> <远程分支名称>
其中,远程仓库地址,可以使用刚刚设置得别名。
3.5 推送(push)本地内容到远程仓库
本地更新的内容推送到远程仓库(本地仓库 ----> 远程仓库),命令格式如下:
git push <远程库地址/别名> <要推送信息的分支(本地)>
1、我们首先在本地仓库做一些改变,比如新增一个test.c文件,然后再本地提交更新。示例如下:
2、本地commit之后,就可以使用push命令推送到远程仓库。
git push gitee_test master
其中,gitee_test是我前面起的远程仓库别名,master是本地仓库的分支名称。
输入上述命令之后,就完成推送了,如下图所示:
不过我在推送的时候,微软弹出了如下登录信息:
这个可能是第一次推送出现的现象,反正输入自己gitee的用户名和密码就行了。
推送完成之后,我们到gitee仓库查看是否多了刚刚添加的 test.c 文件。
4. 克隆(clone)远程仓库
上面的方式,是先在我们本地创建一个本地的仓库,然后pull拉取远程仓库内容(同步远程仓库内容到本地),然后再给远程仓库取别名等等,这种方式一步步来也是没有问题的。
但是,我们也可以直接clone一个远程仓库,clone其实也就是把远程仓库的所有内容复制到本地的意思。
命令如下:
git clone <远程仓库url>
直接克隆远程仓库的效果有:
- 把远程仓库所以内容直接复制到了本地,这时不用pull(拉取)操作
- 初始化了本地仓库,这样我们可以不用 git init 初始化一个本地仓库了
- 会给远程仓库起一个别名 origin 。
示例操作:
比如,我们把刚刚在gitee上的远程仓库clone到本地,如下:
然后我们就可以看到本地的目录下多了一个和远程仓库同名的目录,git_test目录。
这时我们使用 git remote -v
命令,可以看到默认给我们把远程仓库取了别名 origin 。
当我们克隆成功之后,就可以进行拉取、推送,或者查看远程仓库是否更新等操作了,这里和前面先创建本地仓库之后的拉取、推送操作其实已经是一样的。
查看远程仓库是否更新:
git remote show <远程仓库别名/地址>