什么是Git
是一个开源的分布式版本控制系统 最先进 最流行 高效的处理从小到大的项目版本管理
特点
直接记录快照,而非差异比较
所有的操作都是本地执行
Git的三大区域[重点]
工作区,暂存区,Git仓库
Git的三种状态
已修改 modified :已修改了文件,但还没有将修改的结果放到暂存区
已暂存 staged :对已修改文件的当前版本做了标记,使之包含在下次提交的列表中(文件修改并放入了暂存区)
已提交 commited 文件已经保存在本地的Git仓库中
Git使用
安装
注册账号
设置邮箱和用户名
配置用户信息
安装完Git后, 设置自己的用户名和邮件地址
git config --global user.name "xinglovepeng2019"
git config --global user.email "505963847@qq.com"
注意 使用了 --global,该命令只需要运行一次就可以永久生效
配置了用户名和邮箱地址,会被写入到c:/users/用户名文件夹/.gitconfig 文件中,该文件是Git的全局配置文件,配置一次永久生效
检查配置信息
除了使用记事本查看全局配置信息,还可以使用命令
#查看所有的全局配置
git config --list --global
#查看指定的全局配置
git config user.name
git config user.email
获取Git仓库的两种方式
-
将没有进行版本控制的本地目录转换为Git仓库
在项目目录中,鼠标右键 打开 “Git Bash"
执行 git init 将当前目录转换为Git仓库
创建了一个名为 .git的隐藏目录,就是当前项目的Git仓库 包含初始的必要文件,这些文件是Git仓库的必要组成部分
-
从其它服务器克隆一个已存在的GIt仓库
git clone git@github.com:xinglovepeng2019/xx-project.git
工作区中文件的4种状态
工作区的每一个文件可能有4种状态,这四种状态分为两大类
一类:不被git管理的文件
二类:已被git管理的文件------ 未修改 已修改 已暂存
检查文件状态
git status
//Untracked files: 未跟踪状态
简洁方式显示文件状态 未跟踪文件前面有红色的M
git status -s
跟踪文件(把文件存到暂存区)
使用命令git add 来开始跟踪一个文件
git add 文件名 //仅暂存'文件名'的文件
git add . //'.'暂存文件夹中所有的文件
提交更新(提交到Git库)
git commit -m '本次的提交信息' // 对提交内容做描述
git commit -m '新建了index.html'
提交完 工作区的中文件处于 未修改状态 没有任何文件需要提交
对提交文件进行修改
修改过的,没有放入暂存区文件字体是红色标记
#把修改的文件放入暂存区
git add index.html
#提交暂存区的文件
git commit -m '文件修改'
撤销对文件修改
把对工作区对应的文件修改 还原成git仓库中所保存的版本(还原如初未修改前的文件)
操作结果:所有的修改会丢失无法恢复
git checkout -- index.html
暂存区一次性添加多个文件
git add .
取消暂存的文件
从暂存区移除你想要移出的文件
git reset HEAD -- 要移除的文件名称
跳过使用暂存区域
工作区直接到Git仓库
-a git会把所有跟踪的文件暂存起来一并提交 跳过git add .
git commit -a -m '描述信息'
移出文件
#从git仓库和工作区同时移除 index.js文件
git rm -f index.js
#只从git仓库中移除 保留工作区中的文件
git rm --cached index.css
忽略文件
一般我们总会有些文件无需纳入git的管理,也不需要它们总出现在未跟踪文件列表 这种情况下 我们创建一个名为.gitignore的配置文件
该文件中的配置只能影响哪些当前还未交由git来管理的文件
# 开头注释
/结尾 的是目录
/开头 防止递归
!开头 取反
#忽略所有的.a 文件
.a
#跟踪所有的lib.a文件即使在前面忽略了.a文件
!lib.a
#只忽略当前目录下的TODO文件 而不忽略 stu/TODO
/TODO
#忽略任何目录下bulid的文件夹
bulid/
查看提交历史
#所有的提交历史
git log
#只展示最新的两条提交历史
git log -2
回退到指定版本
#根据指定的提交ID回退到指定版本
git reset --hard <commitId>//ID