git的使用学习(七)githup和码云的使用

1.使用GitHub

咱们一直用GitHub做为免费的远程仓库,若是是我的的开源项目,放到GitHub上是彻底没有问题的。其实GitHub仍是一个开源协做社区,经过GitHub,既可让别人参与你的开源项目,也能够参与别人的开源项目。git

在GitHub出现之前,开源项目开源容易,但让广大人民群众参与进来比较困难,由于要参与,就要提交代码,而给每一个想提交代码的群众都开一个帐号那是不现实的,所以,群众也仅限于报个bug,即便能改掉bug,也只能把diff文件用邮件发过去,很不方便。github

可是在GitHub上,利用Git极其强大的克隆和分支功能,广大人民群众真正能够第一次自由参与各类开源项目了。bootstrap

如何参与一个开源项目呢?好比人气极高的bootstrap项目,这是一个很是强大的CSS框架,你能够访问它的项目主页https://github.com/twbs/bootstrap,点“Fork”就在本身的帐号下克隆了一个bootstrap仓库,而后,从本身的帐号下clone:框架

git clone git@github.com:michaelliao/bootstrap.git

必定要从本身的帐号下clone仓库,这样你才能推送修改。若是从bootstrap的做者的仓库地址git@github.com:twbs/bootstrap.git克隆,由于没有权限,你将不能推送修改。ssh

Bootstrap的官方仓库twbs/bootstrap、你在GitHub上克隆的仓库my/bootstrap,以及你本身克隆到本地电脑的仓库,他们的关系就像下图显示的那样:分布式

github-repos

若是你想修复bootstrap的一个bug,或者新增一个功能,马上就能够开始干活,干完后,往本身的仓库推送。学习

若是你但愿bootstrap的官方库能接受你的修改,你就能够在GitHub上发起一个pull request。固然,对方是否接受你的pull request就不必定了。fetch

若是你没能力修改bootstrap,但又想要试一把pull request,那就Fork一下个人仓库:https://github.com/michaelliao/learngit,建立一个your-github-id.txt的文本文件,写点本身学习Git的心得,而后推送一个pull request给我,我会视心情而定是否接受。spa

小结版本控制

  • 在GitHub上,能够任意Fork开源仓库;

  • 本身拥有Fork后的仓库的读写权限;

  • 能够推送pull request给官方仓库来贡献代码。

2.使用码云

使用GitHub时,国内的用户常常遇到的问题是访问速度太慢,有时候还会出现没法链接的状况(缘由你懂的)。

若是咱们但愿体验Git飞通常的速度,可使用国内的Git托管服务——码云gitee.com)。

和GitHub相比,码云也提供免费的Git仓库。此外,还集成了代码质量检测、项目演示等功能。对于团队协做开发,码云还提供了项目管理、代码托管、文档管理的服务,5人如下小团队免费。

 码云的免费版本也提供私有库功能,只是有5人的成员上限。

使用码云和使用GitHub相似,咱们在码云上注册帐号并登陆后,须要先上传本身的SSH公钥。选择右上角用户头像 -> 菜单“修改资料”,而后选择“SSH公钥”,填写一个便于识别的标题,而后把用户主目录下的.ssh/id_rsa.pub文件的内容粘贴进去:

gitee-add-ssh-key

点击“肯定”便可完成并看到刚才添加的Key:

gitee-key

若是咱们已经有了一个本地的git仓库(例如,一个名为learngit的本地库),如何把它关联到码云的远程库上呢?

首先,咱们在码云上建立一个新的项目,选择右上角用户头像 -> 菜单“控制面板”,而后点击“建立项目”:

gitee-new-repo

项目名称最好与本地库保持一致:

而后,咱们在本地库上使用命令git remote add把它和码云的远程库关联:

git remote add origin git@gitee.com:liaoxuefeng/learngit.git

以后,就能够正常地用git pushgit pull推送了!

若是在使用命令git remote add时报错:

git remote add origin git@gitee.com:liaoxuefeng/learngit.git fatal: remote origin already exists.

这说明本地库已经关联了一个名叫origin的远程库,此时,能够先用git remote -v查看远程库信息:

git remote -v origin git@github.com:michaelliao/learngit.git (fetch) origin git@github.com:michaelliao/learngit.git (push)

能够看到,本地库已经关联了origin的远程库,而且,该远程库指向GitHub。

咱们能够删除已有的GitHub远程库:

git remote rm origin

再关联码云的远程库(注意路径中须要填写正确的用户名):

git remote add origin git@gitee.com:liaoxuefeng/learngit.git

此时,咱们再查看远程库信息:

git remote -v origin git@gitee.com:liaoxuefeng/learngit.git (fetch) origin git@gitee.com:liaoxuefeng/learngit.git (push)

如今能够看到,origin已经被关联到码云的远程库了。经过git push命令就能够把本地库推送到Gitee上。

有的小伙伴又要问了,一个本地库能不能既关联GitHub,又关联码云呢?

答案是确定的,由于git自己是分布式版本控制系统,能够同步到另一个远程库,固然也能够同步到另外两个远程库。

使用多个远程库时,咱们要注意,git给远程库起的默认名称是origin,若是有多个远程库,咱们须要用不一样的名称来标识不一样的远程库。

仍然以learngit本地库为例,咱们先删除已关联的名为origin的远程库:

git remote rm origin

而后,先关联GitHub的远程库:

git remote add github git@github.com:michaelliao/learngit.git

注意,远程库的名称叫github,不叫origin了。

接着,再关联码云的远程库:

git remote add gitee git@gitee.com:liaoxuefeng/learngit.git

一样注意,远程库的名称叫gitee,不叫origin

如今,咱们用git remote -v查看远程库信息,能够看到两个远程库:

git remote -v gitee git@gitee.com:liaoxuefeng/learngit.git (fetch) gitee git@gitee.com:liaoxuefeng/learngit.git (push) github git@github.com:michaelliao/learngit.git (fetch) github git@github.com:michaelliao/learngit.git (push)

若是要推送到GitHub,使用命令:

git push github master

若是要推送到码云,使用命令:

git push gitee master

这样一来,咱们的本地库就能够同时与多个远程库互相同步:

┌─────────┐ ┌─────────┐ │ GitHub │ │ Gitee │ └─────────┘ └─────────┘ ▲ ▲ └─────┬─────┘ │ ┌─────────────┐ │ Local Repo │ └─────────────┘

码云也一样提供了Pull request功能,可让其余小伙伴参与到开源项目中来。你能够经过Fork个人仓库:https://gitee.com/liaoxuefeng/learngit,建立一个your-gitee-id.txt的文本文件, 写点本身学习Git的心得,而后推送一个pull request给我,这个仓库会在码云和GitHub作双向同步。

相关文章
相关标签/搜索