在公司一直使用git命令提交,但是都提交到公司的仓库当中。
这段时间自己想弄一个开源项目,关于ListView当中复用drawable的,所以想在gitHub上提交。预示开始摸索着向gitHub提交工程。
1.首先在github上注册一个账号,并且验证邮箱,这个都会,略过。
2.其次点击右上角的按钮,new repository创建新的项目。
3.生成创建ssh key
window下需要使用到插件,本人使用的插件是git bash。
下载地址:http://download.csdn.net/detail/aa5279aa/9576127
命令:
ssh-keygen -t rsa -C [email protected]
如果所示就是创建成功了,生成的默认路径为User/user/.ssh/下。我由于本身就创建了这个文件,所以就输入y选择了覆盖。
如果生成过程中要求生成密码的话,建议是两个回车直接略过,这样就是默认不设置密码了。当然也可以设置密码,个人觉得麻烦。
最后会生成两个文件,id_rsa和id_rsa.pub
4.上传ssh key
以文本的方式打开id_rsa.pub,拷贝里面的内容。
打开github的网页,点击用户头像,选择setting->SSH and GPG keys。
点击New SSH key
title的话随便输入,建议输入用户名一类的来识别。
key的话就输入刚才拷贝的内容。
最后点击Add SSH key。
OK,添加成功。
5.从github上clone项目到本地。
在github的网站上打开刚才创建的工程,选择clone or download。如图所示,要注意选择的是Use SSH。拷贝这个这个地址。
本地选择一个文件夹,输入git clone 刚才拷贝的地址。
这时候如果成功的话,会提示如下
如果失败的话,一般会提示如下的错误:
如果遇到这种错误的话,说明默认使用22的端口,但是github的22端口是不开放的。这时候我们就需要配置指其它的端口了。
在.ssh/文件下面,创建config文件。注意这个文件是不带后缀名的。
输入如下的内容
host github.com
user 你的用户名
hostname ssh.github.com
preferredAuthentications publickey
identityFile ~/.ssh/id_rsa
port 443
然后保存,这时候指向的就是github的443端口了。(这里要注意下,理论上大小写是不敏感的,但是我本地自己试验的时候好像大写的不行,只能小写)
可以先用ssh -T git@github。com命令测试一下。
如果提示如下图所示,就证明你成功了:
如果细心的话你会发现本地.ssh文件夹下多了一个known_hosts文件,这个作用类似于host文件的,优先查找本地host文件。有了这个文件,以后每次连接就不需要输入yes来确认了。
6.本地配置多份ssh私钥和公钥。
如果你和我有一样的需求,本地有多个工程,有的指向公司的项目,有的指向github。很自然的,一个id_rsa文件时绝对不够的。
可以进行如下配置:
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "Key for GitHub"
ssh-keygen -t rsa -f ~/.ssh/id_rsa.oschina -C "Key for oschina"
host github.com
IdentityFile ~/.ssh/id_rsa.github
User yourName
host *.oschina.net
IdentityFile ~/.ssh/id_rsa.oschina
User yourName
例如我的config文件
host github.com
user aa5279aa
hostname ssh.github.com
preferredAuthentications publickey
identityFile ~/.ssh/id_rsa.github
port 443
host wirelesscode.xxxx.com
user myname
identityFile ~/.ssh/id_rsa.ctrip
port 443
OK,大功告成。这时候就可以指向多个远程库了。。
自然的,新生成的公钥别忘了上传对应的远程仓库。