Git版本控制(3)

来源:互联网 发布:钱夫人淘宝店天涯 编辑:程序博客网 时间:2024/05/19 13:42

远程仓库
结束本地仓库的各种管理指令,我们要开始远程仓库的创建了。世界上有个叫GitHub的神奇的网站,从名字就可以看出,这个网站就是提供Git仓库托管服务的,由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,第一步,我们要创建一个ssh密钥:
1:open terminal;
2:

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

3:

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

4:

Enter passphrase (empty for no passphrase): [Type a passphrase]Enter same passphrase again: [Type passphrase again]

github官方教程
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

这里写图片描述

点“Add Key”,你就应该看到已经添加的Key:

这里写图片描述
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。在GitHub上免费托管的Git仓库,任何人都可以看到,但只有你自己才能改。

添加远程库
现在已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步。GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作。

登陆GitHub,在右上角找到“Create a new repo”按钮,创建一个新的仓库:

这里写图片描述

在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:

这里写图片描述

现在在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
我们在learngit仓库下运行命令,这是一条关联指令:

$ git remote add origin git@github.com:zhangyu/learngit.git

添加后,远程库的名字就是origin,这是Git默认的叫法,下一步,把本地库地的内容全部推送到远程库中:

$ git push -u origin masterCounting objects: 19, done.Delta compression using up to 4 threads.Compressing objects: 100% (19/19), done.Writing objects: 100% (19/19), 13.73 KiB, done.Total 23 (delta 6), reused 0 (delta 0)To git@github.com:michaelliao/learngit.git * [new branch]      master -> masterBranch master set up to track remote branch master from origin.

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

如果你现在有新的提交:

$ git push origin master

把本地master分支的最新修改推送至GitHub,那么,我们就拥有了真正的分布式版本库。

从远程库克隆
假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。

登陆GitHub,创建一个新的仓库,名字叫gitskills:

这里写图片描述

勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕后,可以看到README.md文件:

这里写图片描述

远程库已经准备好了,下一步是用命令git clone克隆一个本地库:

$ git clone git@github.com:zhangyu/gitskills.gitCloning into 'gitskills'...remote: Counting objects: 3, done.remote: Total 3 (delta 0), reused 0 (delta 0)Receiving objects: 100% (3/3), done.$ cd gitskills$ lsREADME.md
0 0