Git
文章目录
什么是版本控制?
版本控制是指对软件开发过程中各种程序代码、说明文档等文件的变更进行管理,它将追踪文件变化,记录文件的变更时间、变更内容、甚至变更执行人进行记录,同时对每一个阶段性变更(不仅仅只是一个文件的变化)添加版本编号,方便将来进行查阅特定阶段的变更信息,甚至是回滚
什么是 Git?
人工版本控制器
通过人工的复制行为来保存项目的不同阶段的内容,添加适当的一些描述文字加以区分
- 繁琐、容易出错
- 产生大量重复(冗余)数据
版本控制工具
通过程序完成上述人工版本控制行为
- 方便且功能强大
- 只记录不同版本之间变化的部分
常见版本控制工具
- CVS
- SVN
- Git
- ……
怎么工作的?
首先,我们得先了解两个重要概念
- 状态
- 区域
git 文件生命周期
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5e3u94bw-1635985602061)(.\assets\lifecycle.png)]
状态
同时,git 又提供了三种(也可以说是四种)不同的记录状态
- 已修改(modified)
- 已暂存(staged)
- 已提交(committed)
有一个特殊的状态
- 未追踪(Untracked)
区域
git 提供了三个不同的工作区,用来存放不同的内容
- 工作目录
- 暂存区域
- Git 仓库
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e7KhfYZX-1635985602065)(.\assets\areas.png)]
安装
https://git-scm.com/
配置
当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改
git config user.name "你的姓名"
git config user.email "你的邮箱"
– global
通过 --global
选项可以设置全局配置信息
git config --global user.name "你的姓名"
git config --global user.email "你的邮箱"
检查配置
# 打印所有config
git config --list
# 打印指定config
git config user.name
创建仓库 - repository
进入希望纳入 git 版本控制的项目目录,使用 git init
初始化
git init
该命令将创建一个名为 .git
的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这个目录也是上面我们说的三个区域之一,这个目录也是 Git 保存数据记录的地方,非常重要,如非必要,不要轻易改动
工作流与基本操作
当一个项目被 Git 初始化以后,只是表示我们希望通过 Git 来管理当前的这个项目文件的不同时期版本记录,但是这个时候项目中已存在的文件,或者以后新增的文件都是没有进入版本控制管理的,它们是 未追踪(Untracked)
的状态
查看工作区的文件状态
git status
git status
查看工作区中的文件状态
乱码(win文件名为汉语时)
git status 显示乱码
git config --global core.quotepath false
终端乱码
菜单 -> 设置 -> 文本 -> 本地 / 编码
或修改配置文件
[gui]
encoding = utf-8
# 代码库统一使用utf-8
[i18n]
commitencoding = utf-8
# log编码
[svn]
pathnameencoding = utf-8
# 支持中文路径
[core]
quotepath = false
# status引用路径不再是八进制(反过来说就是允许显示中文了)
添加工作区文件到暂存区
git add
git add 1.txt
# 添加多个文件