Git概念
Git 项目管理三个区域
工作区、暂存区、Git仓库
Git 三种状态
- 已修改(modified):修改了文件,但还没将修改的结果放到暂存区
- 已暂存(staged):对已修改文件的当前版本做了标记,使之包含在下次提交的列表中
- 已提交(committed):文件已经安全地保存在本地的 Git 仓库中
Git 配置用户信息
全局配置文件
注意:配置的用户名和邮箱地址,如果使用了 --global 选项,该命令只需运行一次,即可永久生效。
会被写入到 C:\Users\用户文件夹.gitconfig 文件中。
# 配置的用户名和邮箱地址
git config --global user.name "用户名"
git config --global user.email "邮箱地址"
# 查看所有全局配置项
git config --list --global
Git操作
在现有目录中初始化仓库
如果自己有一个尚未进行版本控制的项目目录,想要用Git来控制它,需要执行如下两个步骤:
- 在项目目录中,通过鼠标右键打开 “Git Bash”
- 执行git init 命令,将当前的目录转换化为Git仓库(自动创建一个 .git 的隐藏目录)
移除文件
# 从 Git 仓库和工作区中同时移除 index.js 文件
git rm -f index.js
# 只从 Git 仓库中移除 index.css,但保留工作区中的 index.css 文件
git rm --cached index.css
忽略文件
有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。
这种情况下,创建一个 .gitignore 的配置文件,列出要忽略的文件的匹配模式。
配置文件 .gitignore 的格式规范如下:
- 以 #开头 的是注释
- 以 /开头 的防止递归
- 以 /结尾 的是目录
- 以 !开头 表示取反
# 忽略所有.a文件
*.a
# 只忽略当前目录下的 TODO 文件,而不忽略其它目录 subdir/TODO
/TODO
# 忽略任何目录下名为build的文件夹
build/
# 忽略index.css这个文件
index.css
查看提交历史
# 按时间先后顺序列出所有的提交历史,最近提交排在最上面
git log
# 只展示最新两条提交历史,数字可以按需进行填写
git log -2
# 在一行上展示最近两条提交历史的信息
git log -2 --pretty=online
# 在一行上展示最近两条提交历史的信息,并自定义输出格式
# %h提交的简写哈希值 %an作者名字 %ar作者修订日期,按多久以前的方式显示 %s提交说明
git log -2 --pretty=format:"%h | %an | %ar | %s"
回退到指定的版本
# 在一行上展示所有的提交历史
git log --pretty=oneline
# 根据指定 提交ID<CommitID> 回退到指定版本
git reset --hard <CommitID>
# 在旧版本中使用git reglog --pretty=oneline 命令,查看命令操作的历史
git reglog --pretty=oneline
# 再次根据最新 提交ID<CommitID> ,跳转到最新的版本
git reset --hard <CommitID>
Git常用命令
# 清空显示内容
clear
# 查看文件状态
git status
# 以精简方式,查看文件状态
git status -s
# 跟踪index.html文件,
# 【1、将未跟踪的文件(index.html)添加到暂存区;
#2、把已跟踪的,且已修改的文件放到暂存区;
#3、把有冲突的文件标记为已解决状态】
git add index.html
# 一次将所有新增和修改过的文件加入暂存区
git add .
# 从暂存区中移除对应的文件
git reset HEAD 要移除的文件名称
# 从暂存区中移除所有文件
git reset HEAD .
# 提交更新,将暂存区中的文件提交到Git仓库
git commit -m "提交描述消息"
# git标准工作流程:工作区→暂存区→git仓库
# 现在git工作流程简化:工作区→git仓库
# git跳过暂存区域(git add),自动把所有已跟踪过的文件暂存起来一起提交
git commit -a -m "提交描述消息"
# 撤销对index.html文件的修改【所有修改会丢失,且无法恢复!请慎重操作】
# 把工作区中对应文件的修改,还原成Git仓库中所保存的版本
git checkout -- index.html