远程仓库是一台机器充当服务器,每个人都可以从这台服务器上克隆资料到自己的电脑上,也可以从自己的电脑上推送自己资料到服务器上。
现在有GitHub网站,就可以免费获得git远程仓库。
现在就需要一个GitHub账号,因本地仓库和GitHub远程仓库之间的数据传输是通过SSH加密的,所以需要设置一下SSH;
1、在自己的主目录下看看有没有.SSH目录(C:\Users\Administrator),点开.SSH目录,看看有没有id_rsa和id_rsa.pub这两个文件,如果有了,直接跳下一步;如果没有,打开git Bash,创建SSH Key:
ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人
2、打开自己的git账户,在settings里面,找到关于SSH,点击New SSH Key,填上任意的title,然后在下面的框中要输入id_rsa.pub,但是我们在SSH这个目录下点击id_rsa.pub是点不开的,怎么才能获取这个密码呢?在这个目录下,在命令符中输入more id_rsa.pub,就可以看到密码,然后黏贴上去就可以了。
这个公钥的用处就是让GitHub知道是你在推送内容,而不是别人。
一、我们已有了本地仓库,现在我们添加远程的仓库
我们添加远程仓库的目的是:
1、把我们本地的资料推送到远程仓库,可以使两个仓库的内容同步,也可以视作远程仓库的内容作为备份资料;
2、也可以让别人看到这个远程仓库的内容,让别人与我们来协作办公。
添加远程仓库的步骤:
1、登陆GitHub,点击左上角的+号,点击下拉菜单上的new repository:
得到:
起一个仓库的名字,然后其他保持默认的配置,然后点击左下角的Create repository,然后会出现下面的页面:
红框中的内容是把现有本地的仓库中的内容推送到这个新创建的仓库中,右边的点击是可以复制命令符,这个命令符是有两个,在用的时候要一个个的使用:
本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
推送成功后,可以看到远程仓库的内容和本地的一模一样:
从现在起,只要本地作了提交,就可以通过命令:
git push origin master
把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!
小结
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!
二、从远程库克隆
一说的是先有本地库,然后有远程库的时候,怎么让本地库和远程库关联;
现在我们要说先创建远程库,然后从远程库克隆到本地。
登陆自己的GitHub账号,然后创建新的repository:
勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕后,可以看到README.md文件:
现在远程库的东西已经创建并设置好了,
下一步是用git clone来克隆一个本地库。
点击绿色的“Create or download”,然后切换使用Use SSH,复制这个地址,
现在我们打开命令符输入git clone <上面复制的地址>,就可以得到:
第一次创建的话,会给一个警告,选yes就可以,然后就完成了,打开目录可以发现已经有了:
这样的话,仓库的内容就可以下载到了自己的本地仓库,当然下载到哪里,肯定要事先把地址cd到那个地方。
当与人协同完成项目的时候,这样就可以从这里下载别人的内容。
在上面,我们点击那个绿色的“create and download”的时候,我们可以看到可以使用“USE HTTPS”,我试了下,是没问题的,步骤依然和上面的一样:复制这个地址,然后在命令符中使用git clone:
我们注意到,一个是我们在learngit文件夹内创建的这个新内容,一个是使用git clone加这个地址就可以了,创建的结果如下:
小结
要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快
以上是我看廖雪峰老师的网站,然后做的学习摘抄,无意侵犯老师作品,如有侵犯,我会删除。