git学习教程二之远程仓库学习
首先你需要注册一个github用户名,我的github账户是:1654218052@qq.com
由于本地的git仓库和github的仓库是通过SSH加密的,所以我们还需要设置一点东西哦
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa
和id_rsa.pub
这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Git Bash,创建SSH Key:
$ ssh-keygen -t rsa -C "email@example.com" # 此处填写自己的邮箱
然后一路回车,使用默认值即可。之后可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开 settings---->SSH&GPG keys页面,点击右上角“Add SSH Key”,打开Add SSH Key页面填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容。之后点击Add SSH Key提交即可。
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
一. git添加远程仓库
1:github登陆之后在右上角点击加号,添加一个仓库
2:添加的仓库题目名字(我的是learngit)一定要写,描述无所谓可以后续再添加。点击create reponsitory
3:添加成功之后,我们就拥有了自己的github新仓库
二. 关联和移除远程库
创建成功之后,我们会看到仓库的地址,如下:git@github.com:1654218052/learngit.git,然后我需要将我们之前的本地仓库和这个远程仓库进行关联,使用git remote add命令,如下:
$ git remote add origin git@github.com:1654218052/learngit.git
如果你配置错了,也不要紧张,执行以下命令可以移除配置的远程仓库
$ git remote rm origin
添加后远程库的名字就是origin,这个是git默认叫法,当然也可以改成别的啦
三. 推送本地仓库内容至远程库
首次执行的时候把本地库的所有内容推送到远程库上:
$ git push -u origin master # 首次执行推送至远程仓库
由于远程库是空的,我们第一次推送master分支时,加上了-u
参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。,就不在需要-u参数了,只需要执行以下命令即可。
$ git push origin master # 非首次执行推送至远程仓库
如果想推送到其他分支,比如我也想把我的lalal分支推送到远程仓库中,执行如下命令:
$ git checkout lalal # 指向分支lalal
$ git push -u origin lalal # 推送至远程仓库的lalal分支下
先切换到fa分支,然后执行git push命令,参数含义和之前的一样,这里我们创建的远程仓库的分支名也为fa(当然我们可以取任何名字,但是为了不混淆,最好取一致的名字)。这两条命令执行成功之后,此时在github中我们就可以看到已经有多个分支了
四. 克隆远程仓库至本地
首先登录github,我们在github中新建一个仓库gitskills.
之后,我们边学习将仓库clone到本地来
$ git clone git@github.com:1654218052/gitskills.git Cloning into 'gitskills'... remote: Enumerating objects: 3, done. remote: Counting objects: 100% (3/3), done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0 Receiving objects: 100% (3/3), done.
注意把Git库的地址换成你自己的,这时候我们便可以进入gitskills,显然这是一个空的仓库故不会输出任何结果
$ cd gitskills
$ ls