git使用教程九:github与码云

使用github

GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。在GitHub出现以前,开源项目开源容易,但让广大人民群众参与进来比较困难,因为要参与,就要提交代码,而给每个想提交代码的群众都开一个账号那是不现实的,因此,群众也仅限于报个bug,即使能改掉bug,也只能把diff文件用邮件发过去,很不方便。但是在GitHub上,利用Git极其强大的克隆和分支功能,广大人民群众真正可以第一次*参与各种开源项目了。
如何参与一个开源项目呢?比如人气极高的bootstrap项目,这是一个非常强大的CSS框架,你可以访问它的项目主页https://github.com/twbs/bootstrap,点“Fork”就在自己的账号下克隆了一个bootstrap仓库,然后,从自己的账号下clone,一定要从自己的账号下clone仓库,这样你才能推送修改。如果从bootstrap的作者的仓库地址[email protected]:twbs/bootstrap.git克隆,因为没有权限,你将不能推送修改。

使用码云

github虽然好但是国内使用有有时下载速度特别慢,这个时候如果想体验非一般的感觉,可以使用git的国内托管服务——码云

和使用github一样首先自行***云账号,然后打通ssh通道,打通通道的方法和github基本一样:
git使用教程九:github与码云

打通通路后创建仓库,然后在链接仓库就可以使用了

git使用教程九:github与码云

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

$ git remote add origin [email protected]:hyd/my_python.git

之后,就可以正常地用git push和git pull推送了!如果在使用命令git remote add时报错:

$ git remote add origin [email protected]:hyd/my_python.git
fatal: remote origin already exists.

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

$ git remote -v
origin    [email protected]:hyd861001/my_python.git (fetch)
origin    [email protected]:hyd861001/my_python.git (push)

可以看到,本地库已经关联了origin的远程库,并且,该远程库指向GitHub。

我们可以删除已有的GitHub远程库:

$ git remote rm origin

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

$ git remote add origin [email protected]:hyd/my_python.git

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

$ git remote -v
origin    [email protected]:hyd/my_python.git (fetch)
origin    [email protected]:hyd/my_python.git (push)

现在可以看到,origin已经被关联到码云的远程库了。通过git push命令就可以把本地库推送到Gitee上。
有的小伙伴又要问了,一个本地库能不能既关联GitHub,又关联码云呢?
答案是肯定的,因为git本身是分布式版本控制系统,可以同步到另外一个远程库,当然也可以同步到另外两个远程库。
使用多个远程库时,我们要注意,git给远程库起的默认名称是origin,如果有多个远程库,我们需要用不同的名称来标识不同的远程库。
仍然以learngit本地库为例,我们先删除已关联的名为origin的远程库:

$ git remote rm origin

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

$ git remote add github [email protected]:hyd861001/my_python.git

注意,远程库的名称叫github,不叫origin了。
接着,再关联码云的远程库:

$ git remote add gitee [email protected]:liaoxuefeng/learngit.git

同样注意,远程库的名称叫gitee,不叫origin。
现在,我们用git remote -v查看远程库信息,可以看到两个远程库:

$ git remote -v
gitee    [email protected]:hyd/my_python.git (fetch)
gitee    [email protected]:hyd/my_python.git (push)
github    [email protected]:hyd861001/my_python.git (fetch)
github    [email protected]:hyd861001/my_python.git (push)

如果要推送到GitHub,使用命令:

$ git push github master

如果要推送到码云,使用命令:

$ git push gitee master