上周三的作业,直到今天才完全搞明白。之前查看了好几个百人计划成员的文章,总感觉有哪不对,但是又说不上来,因为自己不懂嘛!直到今天看了静姐的文章www.jianshu.com/p/30e229db1857 ,才知道原来如此。但是自己又不想写一遍操作流程,我想写出来跟静姐也差不多,操作步骤都是一样的,毫无意义嘛。然而下午有点空闲时间,就打算写了写,果然我的想法是错误的。把自己懂得东西通过文字输出出来这个过程真的会学到挺多的,看别人的文章并不会有太多的思考,大体懂就行了,如果自己输出的话,就会很纠细节,为什么是这样的呢,然后就会百度,在百度的过程中,就会学到挺多的。比如这次的SSH协议,我知道了本地库和远程库关联可以有两种方式,而且更加清楚了SSH是怎么回事。很感谢老徐在百人计划中教我们的这种学习方式,输出真的很重要,以后一定要把自己不懂的后来弄懂的东西落地输出成文章,一方面巩固,一方面输出的过程中会扩展。也建议每个百人计划成员,坚持输出,真的会有你意想不到的收获,希望看到我这篇文章的同学,能够指出文章中的错误,有不清楚的留言沟通。

1新建文件夹及文件
(1)新建仓库dxm,并创建文件夹afile bfile cfile以及文件config.xml

(2)压缩三个文件夹及文件,提交到git库

2 添加到远程库
(1)登录github账号,新建git库,如下图

(2)本地库关联远程库
github存在两种操作方式,一个是ssh,一个是https,使用https方式需要输入用户名和密码,而ssh是一种安全的传输模式,可以代替用户通过“输入用户名密码”的行为验证用户,但是需要提前配置好SSH keys
https和ssh的区别:
a)https:可以随意克隆github上的项目,而不管是谁的;在pull/push的时候需要验证用户名和密码
b)ssh:克隆者必须是拥者或管理员,且需要先添加 SSH key ,否则无法克隆。在pull/push的时候不再是验证用户名和密码,而是通过验证ssh的方式来验证用户。
在github上添加ssh key的步骤
(i)首先检查服务器上是否已存在SSH KEY
[root@localhost dxm]# cd ~/.ssh
[root@localhost .ssh]# ls
此命令是查看.ssh目录下是否存在id_rsa(私钥) 或 id_rsa.pub(公钥) 文件,如果文件已经存在,那么你可以跳过步骤(ii),直接进入步骤(iii)。
(ii)创建一个SSH key
root@localhost .ssh]# ssh-keygen -t rsa -C "dongxiaomingyue@163.com"
参数说明:
-t 指定要创建的密钥类型,如rsa1 、rsa、dsa
-C (comment)添加注释,比如邮箱
输入命令后,一路回车,直到出现如下图中字符时,说明ssh key 已生成,或是ls查看是否存在id_rsa和id_rsa.pub文件,然后将公钥添加到github的SSH KEY中去
(iii)添加ssh key 到github上去
a)拷贝文件id_rsa.pub中的内容
[root@localhost .ssh]# cat id_rsa.pub
b)登录自己的github,点击右上角settings,点击SSH and GPG keys,点击new SSH keys,
添加title及粘贴公钥内容,点击add ssh key,即完成ssh key的添加,详细步骤参照下图。




(iiii)测试一下ssh key
[root@localhost .ssh]# ssh -T git@github.com
Hi dongxiaomingyue! You've successfully authenticated, but GitHub does not provide shell access.
出现以上内容时说明已经设置好了SSH密钥。
GitHub允许添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
回归正题(1)本地库关联远程库
[root@localhost dxm]# git remote add origin git@github.com:dongxiaomingyue/dxm.git

添加后,远程库的名字是origin,这是Git默认的叫法,也可以改成别的。
(2)将本地库的压缩包文件(istester.git.tar)推送到远程库
[root@localhost dxm]# git push -u origin master
git push命令可把当前分支master推送到远程,第一次推送时,添加-u参数,不但会把本地master分支的内容推送到远程新的master分支,同时把本地mater和远程mater分支关联起来,以后推送或者克隆时就可以简化命令。

以后,只要本地做了提交,就可以通过命令,git push origin master,将本地master分支的最新修改推送至github,到此为止,我就拥有了真正的分布式版本库
3 从远程库克隆
新建 /APP/www目录,并进入到该目录下,执行git clone命令,然后进入到dxm目录下查看,即可查看到压缩包文件。
[root@localhost ~]# mkdir -p /APP/www
[root@localhost www]# git clone git@github.com:dongxiaomingyue/dxm.git
此处克隆还可通过https协议,命令如下
[root@localhost www]# git clone https://github.com/dongxiaomingyue/dxm
4 部署
[root@localhost dxm]# tar -zxvf istester.git.tar

网友评论