Git极速入门教程

一、Git简介

  Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

二、代码版本管理工具

  代码版本管理工具主流的就两个SVN和Git,SVN早期企业内部开发用的较多Git因为开源社区GitHub和OSCHINA而被大家认可和接收,逐渐变的流行起来。

三、Git和SVN的区别

  Git 的版本信息的管理是先提交至本地,然后通过push和pull命令来和服务器进行同步。
  SVN的版本信息是直接和服务器进行同步的。
  两种同步模式有利有弊,SVN过于依赖服务器,操作相对简单,Git相对独立,操作相对繁琐。
  Git相对独立,操作相对繁琐。

四、客户端程序

  1. 基于SVN的服务器
  • TortoiseSVN (svn可视化管理工具)
  1. 基于Git的服务器
  • Git for windows (命令行B格)
  • TortoiseGit (Git可视化管理工具)
  • SourceTree(Mac os)

Git图形化界面客户端大汇总

五、Git安装配置和使用

初始化配置(实名认证)

1
2
git config --global user.name "18idc"
git config --global user.email "admin@q18idc.com"

Git基本命令

1
2
3
4
5
6
7
8
9
10
11
12
13
# git 初始化
git init
# 查看文件状态
git status
# 跟踪源码
git add
git add .
# 提交源码
git commit -m '备注'
# 代码提交至服务器
git push
# 服务器代码同步至本地
git pull

应用场景

回退版本

回退场景

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 创建 q18idc.com.txt
vim q18idc.com.txt
第一次提交的内容
git add q18idc.com.txt
git commit -m '第一次提交日志'
# 修改 q18idc.com.txt
vim q18idc.com.txt
第二次提交的内容
git add .
git commit -m '第二次提交日志'
# 查看日志 git log --pretty=oneline(精简版)
git log
# 查看不同
git diff xxxx
# 再练习一遍(循环)

开始回退
版本关键字语法:

  1. HEAD:当前版本
  2. HEAD^:当前版本的上一个版本
  3. HEAD^^:当前版本的上上个版本
1
2
git reset --hard head^
git reset --hard xxxx(版本编号,最少4位)

后悔药

时间机器可以回去也可以回来

1
2
git reflog
git reset --hard xxxx(日志中查看版本号)

提交服务器

推送源码(把源码推送至服务器上,供其他人员同步更新)

和服务器连接之后,操作复杂度成指数上升(多个一起玩【冲突必然降临】,一个人玩【我的地盘我做主】)

1
git push

设置远程服务器地址并推送

1
2
3
4
git remote add <name> <url>
git push <name>
git remote add origin https://github.com/18idc/blog.git
git push -u origin master #第一次推送

多人协同开发

克隆项目(小明下载代码或换了一台电脑)

1
2
3
git clone https://github.com/18idc/blog.git
#查看服务器信息
git remote -v

小红负责写样式代码

1
2
3
4
5
6
7
vim main.css
.btn
color

git add main.css
git commit -m '更新了样式文件'
git push

把小红写的代码同步下来

1
git pull

分支使用

通过分支来开发新功能

1
2
3
4
5
6
7
8
9
10
11
# 基于master创建新分支dev
git checkout -b dev master
# 小明一下午开发了一个登录功能
git add .
git commit -m '登录已开发好(小明)'
# 切换至待合并分支
git checkout master
# 把开发的功能合并至主分支
git merge dev
# 推送至服务器
git push origin mater

冲突

&emsp;&emsp;小明和小红同时修改了POM文件,小明修改了MyBatis的版本号,小红也修改了MyBatis的版本号,这时就产生了一个冲突,Git无法判断保留谁的代码。

这时冲突的文件会产生如下代码

1
2
3
4
5
<<<<<<< HEAD
我的第一次提交代码!
=======
我的第一次提交代码?
>>>>>>> c65e1f080d1801439e40e4c4ff79f3aaaceb6ea9

q118idc.com

六、创建静态个人网站

  1. 新建项目(项目名称很特殊,必须是【用户名.github.io】)
  2. 通过上面所学的,把你个人网站的HTML上传上去
  3. 访问xxxx.github.io就可以访问你的个人主页了

七、小结

  1. 了解Git和SVN的区别(不同公司软件不一样)
  2. 掌握Git基本命令的使用(B格很高,掌握命令可视化界面并不难)
  3. 掌握分支的使用 (为了不影响主线代码,为了修改已上线版本的BUG)
  4. 掌握冲突的基本解决方法(帮Git做决策)
  5. 掌握代码同步 (git push 推送代码至服务器 git pull 从服务拉取代码)

八、其他教程

Git较全面的教程