github使用新手教程

来源:互联网 发布:sql注入分析 编辑:程序博客网 时间:2024/04/30 12:57

在公司一直使用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 xxx@xxx.com


如果所示就是创建成功了,生成的默认路径为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文件时绝对不够的。

可以进行如下配置:

  • 生成github与oschina的钥匙文件各一份
   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"
  • 修改config文件增加如下的代码
  host github.com    IdentityFile ~/.ssh/id_rsa.github    User yourName  host *.oschina.net    IdentityFile ~/.ssh/id_rsa.oschina    User yourName

例如我的config文件


<span style="font-size:14px;">host github.comuser aa5279aahostname ssh.github.compreferredAuthentications publickeyidentityFile ~/.ssh/id_rsa.githubport 443host wirelesscode.xxxx.comuser mynameidentityFile ~/.ssh/id_rsa.ctripport 443</span>

文件夹目录结构:




OK,大功告成。这时候就可以指向多个远程库了。。

自然的,新生成的公钥别忘了上传对应的远程仓库。



1 0