目录
…or create a new repository on the command line
…or push an existing repository from the command line
远程仓库是建立在某个服务器上的版本库。在实际工作中,一个项目会有很多人参与,那么多人协同工作就显得很重要。在某个服务器上的远程仓库,就可以使分布在不同物理位置上的多台电脑同时连接到远程仓库,进行多人协同开发,开发时大家互不干扰,开发完之后,只需要合并代码即可,是不是方便很多。
对于一些工作,自己搭建一个服务器用于远程仓库,得不偿失。不过幸运的是,有一个神奇的网站GitHub(当然还有其他的,例如Gitee,不过使用都是大同小异), 可以在上面实现代码托管。首先,你应该在GitHub上注册一个账号。
创建SSH Key
由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,还需要一点设置:
第1步:生成SSH Key。
在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa
和id_rsa.pub
这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
成功的话,可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的密匙对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
第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推送了。
创建远程仓库
点击 + ,会出现类似下图的菜单,点击 New repository 新建一个仓库
点击之后会出现下面的界面,就可以根据提示创建一个仓库,如果仓库存在就会出现下面的提示,那你就换一个名字...
填完信息之后,点击Create repository,就会创建成功...
关联远程仓库
创建成功后网站就会自动跳转,然后就会有如下提示:
…or create a new repository on the command line
新创建一个仓库并与远程仓库关联,本地仓库的名字应该与远程仓库相同...
echo "# learn" >> README.md git init git add README.md git commit -m "first commit" git remote add origin https://github.com/wfcHome/learn.git git push -u origin master
…or push an existing repository from the command line
将一个已有本地仓库与远程仓库关联,需要在本地仓库中打开命令窗口,然后输入以下代码...
git remote add origin https://github.com/wfcHome/learn.git git push -u origin master
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
关联之后,远程库的名字就是origin
,这是Git默认的叫法,也可以改成别的,但是origin
这个名字一看就知道是远程库...
以后如果要把本地版本库的文件推送到远程仓库就可以使用: git push origin master
克隆远程仓库
当我们需要把远程仓库拉取到本地时,可以使用 git clone 命令
从上面可以看到,有两种不同的方式,HTTPS和SSH
在命令窗口中输入 git clone https://github.com/wfcHome/learn.git 或者 SSH 的方式 git clone git@github.com:wfcHome/learn.git
地址最好是直接复制,不容易出错,还简单...