远程仓库是什么?
Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。
实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。这台“服务器”仓库就是远程仓库。
当然我们自己可以搭建一台运行Git的服务器,但我们学习过程中使用GitHub,从名字就可以看出,这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。
Github设置
先注册GitHub账号,由于本地的Git仓库和GitHub仓库之间传输是通过SSH加密的,所以要设置一下。
1.创建SSH Key
打开Git Bash,创建SSH Key:
ssh-keygen -t rsa -C "youremail@example.com"
如果本地已经存在公私钥,则会提示已存在,就没必要再重新生成。
注意:公私钥(id_rsa和id_rsa.pub)会存放在用户主目录(c:/Users/username)下的.ssh目录
2.在GitHub上添加公钥
登陆GitHub,打开Settings,选择SSH and GPG keys,把上面生成的公钥添加上去。
tips:
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
添加远程仓库
1.创建GitHub仓库
登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库。
2.关联本地仓库和GitHub仓库
git remote add origin git@github.com:mygitname/mygit.git
注意:mygitname要替换成自己github账户名,mygit.git是自己的github仓库
3.将本地库中的内容推送到GitHub仓库
用git push命令,实际上是把当前分支master推送到远程。
git push -u origin master
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
从远程库克隆
在实际场景中,我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。
首先,创建GitHub仓库。然后,用git clone克隆一个本地库。
git clone git@github.com:mygitname/mygit.git
总结
1.关联本地仓和GitHub仓:
git remote add origin git@github.com:mygitname/mygit.git
2.克隆GitHub仓:
git clone git@github.com:mygitname/mygit.git
3.推送到GitHub仓:
第一次使用:git push -u origin master,之后就可以省略为:git push -u origin master