鱼喃

听!布鲁布鲁,大鱼又在那叨叨了

git的使用方法(以github为例)---初级

概念介绍

关于git(About git)

git是一个免费、开源的分布式版本控制系统,最早由Linus Torvalds开发、用于linux系统内核代码的管理。其他的版本还有cvs、svn等,关于它们的介绍和不同之处,可以参考 版本管理svn,git,cvs比较

关于github(About github)

github 是一个提供git仓库服务的平台,公开仓库是免费提供的。所谓仓库,就是存放代码和版本信息的地方。

环境配置(Setting envoriment)

要使用git就必须配置git环境,毋庸置疑。

Linux系统:

1
2
//take Ubuntu as an example
sudo apt-get install git

Windows系统:

可以用github官方的Github for Windows,也可以安装mysysgit,前者是基于后者的,附带了图形化界面。安装步骤略。

git命令的简单使用(demos)

1、开始使用之前要设置自己的邮箱和用户名,用于git的版本跟踪(谁提交的)。

1
2
git config --global user.email "[email protected]"
git config --global user.name "newnius"

de69716fe23e22736b15044a4ea2c023.png

2、初始化git仓库

有两种,一种自己在本地创建,从零开始开发;另一种是从远程仓库克隆,从已有的代码开始开发。

本地创建仓库:
1
2
3
mkdir gitTutorial
cd gitTutorial
git init

29efb030a49b3793c48ce8565e440ce8.png

查看可以发现项目目录下会自动生成了几个文件,包括保存分支信息,当前分支指向等信息,具体目前不用知道,只需要当成git用来管理项目的数据就行了。

70596adabc47314c94a571d663ab7cbf.png

从远程服务器克隆到本地:

首先要获得项目的git仓库地址,github在项目右下角,选择合适的链接

3b482ee1ca435fffc5a5667b8bd33d43.png

1
git clone https://github.com/newnius/newnius.github.io.git

4d4cde6308f813060d4db7b0ba029e78.png

3、对已有的文件进行修改并提交

1
2
3
cd newnius.github.io
vim index.html
git commit -a -m 'add register page link'

说明:

引号中的内容是注释,即记录为什么要做这次改变
-m 参数:m代表msg,表示后面紧跟的是注释
-a 参数:a代表all,表示将且仅将所有(被修改或已删除)并且已经被git管理(之前提交的)的文档提交到仓库中。用这个参数可以在只对当前代码进行删改的情况下略去一条命令,节省时间。

493947d790be04b68cbf0b61d4eac1f1.png

4、创建新的文件并提交

1
2
3
touch main.html
git add main.html
git commit -m 'add main page'

50fd5567d5dabbd08d980312811715e5.png

可以看到,如果不用add命令提交会失败。这是因为git不会主动记录你对文档的更新,除非你主动要求(比如add命令,或者是加上“-a”选项,但是注意“-a”选项无法处理新增的文件)。
如果修改的东西太多,add会很麻烦,简单的方法是利用

1
git add . 

让git自动检查当前目录(包括子目录)下的所有更改。

b00c93af4e0db33bf49ca5b25614f75d.png

5、删除文件并提交

前面也提到了,只需要

1
git commit -a -m 'rm ucenter page' 

就可以了

b3a475a33bca0141ed9e49c4e516dba3.png

6、重命名或者移动文件

可以看到,当我们利用

1
git add . 

命令的时候会有警告:
对文件进行了重命名和移动操作,如果不指定模式(-A 或者 –ignore-removal),系统将默认使用–ignore-removal 参数,这种模式将导致该文件的轨迹丢失(也就是说该文件的历史记录被忽略,后期无法还原等等)。

b62e4d159567b1f5848262495c476fd7.png

推荐使用“-A”参数(或者–all,同义),记录下对文件的修改历史,除非确认不需要记录,但是这样最好也要加上–ignore-removal参数,尽管有点长^-^。

7、将修改推送到远程仓库

到目前为止,我们的代码都是保存在本地,如果想共享代码、跟其他人一起开发,就需要把自己的代码推送到远程仓库。

1
git push origin master

填上git仓库的账号和密码(github账号和密码)就可以开始推送了

606467d3ec12a169d3f7c7908a16186b.png

1
2
3
//origin位置 表示要推送到哪个仓库,origin是说推送到仓库源,即从哪来就到哪去
//也可以自己通过
git remote add origin https://github.com/newnius/newnius.github.io.git

命令设置origin

//master位置 表示提交的分支,忽略表示提交所有分支

8、免登录推送代码

默认情况下,每次推送代码时都要求填写帐号和密码,太麻烦,于是想到了免登录。所谓的免登录其实就是系统记住密码自动填写(类似,但是实际上不是)。

创建授权密钥
1
ssh-keygen -t rsa -C "[email protected]"

位置和密码可以为空,一路回车就行

22dc7e2ba7a53b3c7c2abdb96e013700.png

打开密钥文件,复制。地址会提示的。
1
vim /home/newnius/.ssh/id_rsa.pub

8daec22883ec56cc18bbed6e2a2392c7.png

打开github设置中心,选择SSH KEYS
添加ssh keys,名字随意,然后粘贴就行。

//测试下链接

1
ssh -T [email protected]

注意:通过这种方式是通过ssh连接的,前面的是基于https协议的,你应该用类似git@github.com:newnius/newnius.github.io.git 这种形式的远程仓库地址来替代。

9139d343da48adeb8546de50d08fc254.png

更多关于分支和回滚的内容中级再涉及,本文仅做入门用。

参考

【Github教程】史上最全github使用方法:github入门到精通

git-commit(1) Manual Page