Git--远程仓库
$ git remote add origin git@server-name:path/repo-name.git
$ git push -u origin master
$ git push origin master
$ git clone git@server-name:path/repo-name.git
Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。GitHub就是提供Git仓库托管服务的,我们只需要注册一个GitHub账号,就可以免费获得Git远程仓库。
之后打开我们自己的github主页,点击界面上的绿色按钮New repository
NewRepository.PNG
打开创建仓库的界面,如下图所示 Create new repository 填入仓库名字(不能和已有仓库名字相同)、描述、权限(私有的貌似要收费)、选择初始化的时候是否创建README
文件(Markdown格式)、是否添加gitignore
文件、是否添加版权(一般是选 GNU General Public License 或者 Apache License,关于这两个协议,大家可以去网上搜一下),然后点击下面的 Create repository
就完成了远程仓库创建
点开我们刚才新建的仓库,点clone会发现有两个连接,一个是https一个是SSH传输的,利用http进行clone到本地或者与本地进行关联后,我们之后的每次操作都需要输入我们github的用户名和密码,这样太麻烦了,所以我们采取SSH方式,配置一次密钥就搞定:
- 首先本地创建密钥
首先看本地根目录下的.ssh文件下是否有id_rsa与id_rsa.pub文件
SSH密钥
如果没有请执行一下命令生成密钥
$ ssh-keygen -t rsa -C "youremail@example.com"
然后可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。 -
登陆GitHub,设置密钥
SSHKey.png
点击右上角头像Settings,然后点左侧SSH and GPGKeys,点Add Key,在Key文本框里粘贴id_rsa.pub文件的内容。
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
然后我们就可以将本地仓库与刚建立的远程仓库所连接了。我们主要讲两个操作,本地仓库连接远程库和从远程clone库下来
本地仓库连接远程库
先进入本地仓库的目录,然后执行下面的命令
$ git remote add origin git@github.com:HChersh/TestGit.git
注意:origin为远程仓库的默认名字,也可以改,运行中可以抱这个名字已经存在,请自行简单百度一下怎么解决,后面跟的一定得是自己的远程仓库的地址,直接运行以上代码会让你的本地仓库和我远程仓库关联,但是你无法push上去,因为我远程仓库没有添加你的ssh密钥。
然后运行$ git push -u origin master
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样
下面就是gitclone的命令
git clone git@server-name:path/repo-name.git