【Tools】Git使用
一、SSH Key的作用
你如果要将自己的项目通过Git放置到某个服务器上,那么首先必须生成一个SSH Key,这个Key有什么作用呢?首先你需要了解一下什么是SSH,这个可以参见博文http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html.我稍微总结一下:
SSH是一种协议,目的是通过公钥加密进行安全网络传输。过程如下:(1)远程主机收到用户的登录请求,把自己的公钥发给用户。(2)用户使用这个公钥,将登录密码加密后,发送回来。(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。
而我们知道,使用Git的时候,是手动在本地生成公钥的,然后在网页上登陆服务器(比如GitHub)将自己的公钥黏贴进去的,所以基本上第一步应该就省略了,只需要进行2)和3)即可。
上面的博客中还提到一个中间人攻击,SSH是通过fingerprint来预防此类风险的,Git也实现了这个,因为我们在生成公钥的时候,就一起生成fingerprint,截图如下:
通过本地生成自己的公钥,就可以实现公钥登陆。
二、如何生成SSH KEY
一行命令即可实现:
1 ssh-keygen -t rsa -C "xian**@gmail.com"-f ~/.ssh/csser-github
简单介绍下参数含义:
-t 指定密钥类型,默认即 rsa ,可以省略
-C 设置注释文字,比如你的邮箱(可以省略)
-f 指定密钥文件存储文件名,会生成 csser-github 和 csser-github.pub 两个密钥文件,默认生成的文件就是在$HOME/.ssh文件夹下面
回车后,遇到提示输入 yes 即可,剩下一路回车,密钥文件就在指定路径下生成了。然后将你的公钥黏贴到GitHub上即可(具体操作网上很多)。
三、初始化
1)创建本地文件夹(mkdir),或者进入已经存在的项目文件夹(cd),执行命令:git init(注意,执行这条命令的时候你一定是在这个你要git的文件夹里面)
2)在这个文件夹下面的文件,你可以通过使用命令:git add <filename>逐项进行添加,也可以使用命令:git add *一次全部添加;
3)添加到本地缓存:Git在本地有一个缓存(index)对修改变动进行缓存,使用命令:git commit -m "注释"这个命令即可将变化提交到缓存区;
4)push到服务器:提交到本地缓存还没有完成整个管理,我们需要将变化提交到服务器,这样别人才能通过pull命令获取你的变化。首先,我们可以为我们的远程服务器添加一个别名,这样子就不需要每次都输入仓库的具体地址。
1 $ git remote add origin git@github.com:henllyee/Test.git
orgin就是别名,后面跟的就是你的远程仓库,这个当你在Github上找到的。
下面使用一条命令进行push:
1 git push -u origin master
这里表示将变化提交到orgin仓库的master分支。