概念介绍
关于git(About git)
git是一个免费、开源的分布式版本控制系统,最早由Linus Torvalds开发、用于linux系统内核代码的管理。其他的版本还有cvs、svn等,关于它们的介绍和不同之处,可以参考 版本管理svn,git,cvs比较。
关于github(About github)
github 是一个提供git仓库服务的平台,公开仓库是免费提供的。所谓仓库,就是存放代码和版本信息的地方。
环境配置(Setting envoriment)
要使用git就必须配置git环境,毋庸置疑。
Linux系统:
1 | //take Ubuntu as an example |
Windows系统:
可以用github官方的Github for Windows,也可以安装mysysgit,前者是基于后者的,附带了图形化界面。安装步骤略。
git命令的简单使用(demos)
1、开始使用之前要设置自己的邮箱和用户名,用于git的版本跟踪(谁提交的)。
1 | git config --global user.email "[email protected]" |
2、初始化git仓库
有两种,一种自己在本地创建,从零开始开发;另一种是从远程仓库克隆,从已有的代码开始开发。
本地创建仓库:
1 | mkdir gitTutorial |
查看可以发现项目目录下会自动生成了几个文件,包括保存分支信息,当前分支指向等信息,具体目前不用知道,只需要当成git用来管理项目的数据就行了。
从远程服务器克隆到本地:
首先要获得项目的git仓库地址,github在项目右下角,选择合适的链接
1 | git clone https://github.com/newnius/newnius.github.io.git |
3、对已有的文件进行修改并提交
1 | cd newnius.github.io |
说明:
引号中的内容是注释,即记录为什么要做这次改变
-m 参数:m代表msg,表示后面紧跟的是注释
-a 参数:a代表all,表示将且仅将所有(被修改或已删除)并且已经被git管理(之前提交的)的文档提交到仓库中。用这个参数可以在只对当前代码进行删改的情况下略去一条命令,节省时间。
4、创建新的文件并提交
1 | touch main.html |
可以看到,如果不用add命令提交会失败。这是因为git不会主动记录你对文档的更新,除非你主动要求(比如add命令,或者是加上“-a”选项,但是注意“-a”选项无法处理新增的文件)。
如果修改的东西太多,add会很麻烦,简单的方法是利用
1 | git add . |
让git自动检查当前目录(包括子目录)下的所有更改。
5、删除文件并提交
前面也提到了,只需要
1 | git commit -a -m 'rm ucenter page' |
就可以了
6、重命名或者移动文件
可以看到,当我们利用
1 | git add . |
命令的时候会有警告:
对文件进行了重命名和移动操作,如果不指定模式(-A 或者 –ignore-removal),系统将默认使用–ignore-removal 参数,这种模式将导致该文件的轨迹丢失(也就是说该文件的历史记录被忽略,后期无法还原等等)。
推荐使用“-A”参数(或者–all,同义),记录下对文件的修改历史,除非确认不需要记录,但是这样最好也要加上–ignore-removal参数,尽管有点长^-^。
7、将修改推送到远程仓库
到目前为止,我们的代码都是保存在本地,如果想共享代码、跟其他人一起开发,就需要把自己的代码推送到远程仓库。
1 | git push origin master |
填上git仓库的账号和密码(github账号和密码)就可以开始推送了
1 | //origin位置 表示要推送到哪个仓库,origin是说推送到仓库源,即从哪来就到哪去 |
命令设置origin
//master位置 表示提交的分支,忽略表示提交所有分支
8、免登录推送代码
默认情况下,每次推送代码时都要求填写帐号和密码,太麻烦,于是想到了免登录。所谓的免登录其实就是系统记住密码自动填写(类似,但是实际上不是)。
创建授权密钥
1 | ssh-keygen -t rsa -C "[email protected]" |
位置和密码可以为空,一路回车就行
打开密钥文件,复制。地址会提示的。
1 | vim /home/newnius/.ssh/id_rsa.pub |
打开github设置中心,选择SSH KEYS
添加ssh keys,名字随意,然后粘贴就行。
//测试下链接
1 | ssh -T [email protected] |
注意:通过这种方式是通过ssh连接的,前面的是基于https协议的,你应该用类似git@github.com:newnius/newnius.github.io.git 这种形式的远程仓库地址来替代。
更多关于分支和回滚的内容中级再涉及,本文仅做入门用。