我认为 Git 是一个“更改”管理系统,我所做的更改都能被轻松的跟踪。Git 强大的地方在于它的便捷性和快速性,以及会保留有详细的跟踪记录,也许十几二十天后,我发现我做的某些更改存在一些问题,通过 Git “版本”控制系统我能马上找到我需要改动的地方。其次,Git 可以搭建可供多人合作的 Git 服务器,在 Git 服务器中,利用 Git 分支管理功能可以很方便多人合作分工完成任务。同样的,历史也是可寻的,极大提高生产和解决Bug的效率。
Git 的安装
本文主要讲解 Windows 系统下的安装,一般 Linux 系统自带 Git;
Linux 系统下
Ubuntu和Debian发行版输入以下命令就可以完成安装:
1
sudo apt-get install git
Windows 系统下
官网: https://git-scm.com/download/win
以下使用 Git-2.26.1 作为示例进行演示。
选择组件
选择桌面 Git 图标,以及去掉了两个右键菜单。
选择默认编辑器
建议选 Vim 吧,选 VSCode、Notepad++ 也行。
选择 Git 环境变量
第一个是只在 Git Bash 中使用git,如果你只想用 Git Bash 中进行版本管理那选这个;如果你还想在其他软件,比如 VSCode 中使用 Git,那就选第二个默认选项。
选择 SSH 客户端
Git 有 http 和 ssh 传输方式。这里是选择我们的 ssh 客户端,这也是一个偏好选项,我喜欢用 putty,但是不知道配置会不会麻烦,所以先选择默认选项。
选择回车符
Linux系统回车使用LF,而Windows系统回车使用CRLF,所以文件在不同系统的排列和显示不同。建议使用默认选项,使用windows风格,提交时转为unix风格回车符。
选择git bash运行环境
建议选择MinTTY而不是windows命令提示符,实测后者很难修正中文显示乱码。
Git 使用中文
Git Bash显示中文
这个版本默认显示中文,如未显示,可在 Git Bash 控制台下右键配置 Text 选项,Locale 改为 zh_CN。
Git add和commit操作显示中文
在使用git的时候,经常会碰到有一些中文文件名或者路径被转义成\xx\xx\xx之类的,此时可以通过git的配置来改变默认转义:
1
git config --global core.quotepath false
core.quotepath 设为 false,就不会对 0×80 以上的字符进行 quote,中文显示正常。另外我们使用的全局参数,此时会在git全局配置文件下,一般在当前用户目录下,增加一行配置,不用时删掉即可。
有强迫症的哥们,可以先用git init
命令创建好git“版本库”,然后改上面的global为local,这样做配置文件只会出现在当前项目中,也只对当前项目生效。
Git 的基本使用
必要操作
第一步:配置用户名和密码
优先级:local > global > system
1
2
git config --global user.name "填写的name"
git config --global user.email "填写的email"
可以看到相应配置文件中会多出这些配置信息:
- global:
C:\Users\%username%\.gitconfig
;- local:
当前目录\.git\config
,需要先git init
;- system:据说在安装目录多处存在;
1
2
3
[user]
name = 填写的name
email = 填写的email
第二步:当前目录初始化 git 仓库
操作后会在当前目录生成一个.git
的目录
1
git init
常规使用
克隆 git 仓库
1
2
3
4
# SSH方式通信的例子
#
git clone git@github.com:jvboy/learn_git.git
git clone git@git.oschina.net:jvboy/learn_git.git
git 本地改动
1
2
3
4
5
6
7
8
9
10
11
12
# 查看状态
git status
# 加入暂存索引
git add 文件name1 文件name2
git add . # 项目所有变动文件加入索引
# 查看当前文件和暂存文件的改动
git diff 文件name
# 提交文件到版本库,同时还会生成新版本log
git commit -m "版本信息提示" # 参数message
查看版本历史
1
2
3
4
5
6
7
8
9
10
11
# 查看所有版本信息
git log
# 一行显示:只显示精简哈希和提交信息
git log --oneline
# 图形模式
git log --graph
# 显示所有分支历史记录
git log --all
找到历史版本号
即使回退后丢失了部分版本号,也能通过此命令找到版本号。
1
git reflog