使用GitHub时,国内的用户经常遇到的问题是访问速度太慢,有时候还会出现无法连接的情况(原因你懂的)。

    如果我们希望体验Git飞一般的速度,可以使用国内的Git托管服务——Giteegitee.com)。

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

    注意

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

    Gitee企业版正在优惠中:

    • 买1年送1个月:优惠码lhkYPzFJ
    • 买2年送3个月:优惠码tHyhJjeE
    • 买3年送6个月:优惠码N6KOc5BG

    >>Gitee企业版专属购买通道 <<

    小提示:记得先复制优惠码信息,在购买页面输入优惠码即可。

    使用Gitee和使用GitHub类似,我们在Gitee上注册账号并登录后,需要先上传自己的SSH公钥。选择右上角用户头像 -> 菜单“设置”,然后在左侧菜单选择“SSH公钥”,填写一个便于识别的标题,然后把用户主目录下的.ssh/id_rsa.pub文件的内容粘贴进去:

    使用Gitee - 图1

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

    使用Gitee - 图2

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

    首先,我们在Gitee上创建一个新的项目,选择右上角用户头像旁的加号,然后点击“新建仓库”:

    使用Gitee - 图3

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

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

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

    “复制到剪贴板”)

    之后,就可以正常地用git pushgit pull推送了!

    如果在使用命令git remote add时报错:

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

    “复制到剪贴板”)

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

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

    “复制到剪贴板”)

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

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

    1. git remote rm origin

    “复制到剪贴板”)

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

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

    “复制到剪贴板”)

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

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

    “复制到剪贴板”)

    现在可以看到,origin已经被关联到Gitee的远程库了。通过git push命令就可以把本地库推送到Gitee上。

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

    答案是肯定的,因为git本身是分布式版本控制系统,可以同步到另外一个远程库,当然也可以同步到另外两个远程库。

    使用多个远程库时,我们要注意,git给远程库起的默认名称是origin,如果有多个远程库,我们需要用不同的名称来标识不同的远程库。

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

    1. git remote rm origin

    “复制到剪贴板”)

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

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

    “复制到剪贴板”)

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

    接着,再关联Gitee的远程库:

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

    “复制到剪贴板”)

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

    现在,我们用git remote -v查看远程库信息,可以看到两个远程库:

    1. git remote -v
    2. gitee git@gitee.com:liaoxuefeng/learngit.git (fetch)
    3. gitee git@gitee.com:liaoxuefeng/learngit.git (push)
    4. github git@github.com:michaelliao/learngit.git (fetch)
    5. github git@github.com:michaelliao/learngit.git (push)

    “复制到剪贴板”)

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

    1. git push github master

    “复制到剪贴板”)

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

    1. git push gitee master

    “复制到剪贴板”)

    这样一来,我们的本地库就可以同时与多个远程库互相同步:

    1. ┌─────────┐ ┌─────────┐
    2. GitHub Gitee
    3. └─────────┘ └─────────┘
    4. └─────┬─────┘
    5. ┌─────────────┐
    6. Local Repo
    7. └─────────────┘

    Gitee也同样提供了Pull request功能,可以让其他小伙伴参与到开源项目中来。你可以通过Fork我的仓库:https://gitee.com/liaoxuefeng/learngit,创建一个your-gitee-id.txt的文本文件,写点自己学习Git的心得,然后推送一个pull request给我,这个仓库会在Gitee和GitHub做双向同步。