最早一台机器有一个原始版本库,这个一般来说叫做服务器仓库。
不过为了方便我们这里直接使用github。首先注册一个github账号
1.创建SSH Key,打开git bash
1: $ ssh-keygen -t rsa -C "youremail@example.com"
无需密码,一路回车。
用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
2.登录github,打开settings,SSH_Key页面,点击New Shh Key
填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容。
注意,linux上的操作为:
cd~(进入用户主目录) cd .ssh(进入.ssh目录) ls(列出.ssh目录的文件,可以看到id_rsa id_rsa.pub两个文件) cat ~/.ssh/id_rsa.pub(可以看到id_rsa.pub文件的内容,复制即可),我使用的Ubuntu可以使用点击鼠标滚轮来复制。
添加远程库
点击New repository,在Repository name填入learngit
,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库。
根据GitHub的提示,在本地的learngit
仓库下运行命令:,michaelliao是github账户名。origin是git默认的远程库名,可以改成别的。记住bash切换到工作目录。
1: $ git remote add origin git@github.com:michaelliao/learngit.git
如果不小心输错了还可以移除后再输入。
1: $ git remote rm origin
再将本地库的所有内容推送到远程库上。
1: $ git push -u origin master2: Counting objects: 20, done.3: Delta compression using up to 4 threads.4: Compressing objects: 100% (15/15), done.5: Writing objects: 100% (20/20), 1.64 KiB | 560.00 KiB/s, done.6: Total 20 (delta 5), reused 0 (delta 0)7: remote: Resolving deltas: 100% (5/5), done.8: To github.com:michaelliao/learngit.git9: * [new branch] master -> master10: Branch 'master' set up to track remote branch 'master' from 'origin'.
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
从现在起,只要本地作了提交,就可以通过命令:
1: $ git push origin master
从远程库克隆
1: $ git clone git@github.com:michaelliao/gitskills.git2: Cloning into 'gitskills'...3: remote: Counting objects: 3, done.4: remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 35: Receiving objects: 100% (3/3), done.
进入gitskills
目录看看,已经有README.md
文件了:
1: $ cd gitskills2: $ ls3: README.md
Git支持多种协议,包括https
,但通过ssh
支持的原生git
协议速度最快。