总结:
1、git中的三个区域?(No.1)
2、git工作区中文件的四种状态?(No.7)
3、如何以精简的方式显示文件状态? (No.10)
4、如何想缓存区中一次性添加多个文件(No.16)
5、如何取消暂存的文件 (No.17)
6、如何跳过使用暂存区域 (No.18)
7、从git 仓库中移除文件的方式两种 (No.19)
8、忽略文件格式的匹配模式(No.20,No.21)
9、查看历史提交记录,并且以自定义形式输出 (No.22)
10、在一行上展示所有提交历史(No.23)
11、回退到指定版本(No.23)
————————————————————分割线——————————————————————
- 基本概念
git管理项目有三种状态和区域
工作区( 已修改 modified )、
暂缓区 (已暂存 staged )、
git仓库 (已提交 committed)
2.git 基本工作流程
wroking Directory => stage Fixes => staging area => commit => git directory (Repository)
- 在工作区中修改文件
- 将修改文件提交到缓存区中
- 缓存区文件再更新提交到 git仓库中。
- 配置git
设置自己的用户名和邮件地址,在git版本管理时,需要用来记录是谁对项目进行了操作。
使用global选项,该命令运行一次,永久生效。会被写
入到 C:/Users/用户名文件夹/.gitconfig
git config --global user.name “username”
git config --global user.email “email@qq.com”
- 检查配置信息
git config --list --global #查看所有全局配置项
- 获取帮助信息
使用git help命令,无需连网即可在浏览器中打开帮助手册
# 打开帮助手册
git help config
# 想要获取 git config 命令的快速参考
git config -h
-
获取git仓库的两种方式
1.将尚未进行版本控制的本地目录转换为git仓库
2.从其他服务器克隆一个已存在的git仓库 -
在现有目录中初始化仓库
执行 git init 转换为git仓库,.git隐藏目录就是git仓库,包含初始化文件,是必要组成部分。 -
在工作区中文件的4种状态。.
1、未跟踪文件 Untracked
2、未修改文件 Unmodified
3、已修改文件 Modified
4,已缓存文件 Staged -
检查文件的状态
git status 查看文件处于什么状态 -
以精简的方式显示文件状态
git status -s (-s 是 --short 的简写形式)
git status --short未跟踪文件前面有红色的 ?? 标记
-
跟踪新文件
git add .
文件状态显示: Changes to be committed新添加到缓存中的文件前面有绿色的A标记
-
提交更新
git commit -m ‘提交的描述’
-m选项后面是本次的提交信息,用来对提交的内容做进一步的描述。
提交更新后,z工作区中文件都处于“未修改”的状态,没有任何文件需要被提交 -
对已提交的文件进行修改(已经被 Git 跟踪)
使用 git status 检查文件状态。 Changes not staged for commit 说明以跟踪文件的内容发生了变化,但还没放置到缓存区中。修改过的、没有放入暂存区的文件前面有红色的 M 标记。
-
撤销对文件的修改
把工作区对应文件的修改,还原到git仓库中保存的过往版本中
所有的修改会丢失,且无法恢复。(一般处理冲突)撤销操作的本质:用git仓库中保存的文件,覆盖工作区中指定的文件。
-
向缓存区中一次性添加多个文件 (git add .)
-
取消暂存的文件
如果需要从暂存区中移除对应的文件!
git reset head 移出文件名称。 -
跳过使用暂存区域
git 标准工作流程是 工作区-缓存区-git仓库跳过使用暂存区域命令: 工作区-git仓库
给git commit -a 选项,自动把所有已经跟踪过的文件缓存起来一并提交,从而跳过git add 步骤:git commit -a -m “提交描述”
-
移除文件
从git 仓库中移除文件的方式两种:
# 1.从git仓库和工作区中同时移除对应的文件
git rm -f index.js
# 只从git仓库中移除指定的文件,但保留工作区中对应的文件
git rm --cached index.js
- 忽略文件
.gitignore配置文件, 无需添加到git仓库管理的文件。
匹配模式
1. 以 # 开头的是注释
2. 以 / 结尾的是目录
3. 以 / 开头放置递归
4. 以 ! 开头表示取反
5. 使用 glob 模式进行文件和文件夹的匹配。
6. glob模式
① 星号 * 匹配零个或多个任意字符
② [abc] 匹配任何一个列在方括号中的字符 (此案例匹配一个 a 或匹配一个 b 或匹配一个 c)
③ 问号 ? 只匹配一个任意字符
④ 在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配
所有 0 到 9 的数字)
⑤ 两个星号 ** 表示匹配任意中间目录(比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等
- .gitignore
# 忽略所有.a的文件
*.a
# 但跟踪所有的 lib.a,即便你在前面忽略了 .a文件
!lib.a
# 只忽略当前目录下的TODO文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为build 的文件夹
build/
# 忽略 doc/notes.txt 但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/目录及其所有子目录下的 .pdf文件
doc/**/*.pdf
-
查看提交历史
按时间先后顺序列出提交历史,最上面是最新的。
git log只展示最新的两条提交历史,数字可以按需进行填写
git log -2在一行上展示最近两条提交历史的信息
git log -2 --pretty=oneline在一行上展示最近两条提交历史的信息,并自定义输出的格式
%h 提交的简写哈希值
%an作者名字
%ar作者修订日期,最后修改日期的方式显示
%s提交说明
git log -2 --pretty=format:“%h | %an | %ar | %s” -
回退到指定的版本
在一行上展示所有的提交历史
git log --pretty=oneline使用git reset --hard 命令,根据指定的提交id回退到指定版本
git reset --hard在旧版本中使用 git reflog --pretty=oneline 命令,查看命令操作的历史
git reflog --pretty=oneline再次根据最新的提交ID,跳转到最新的版本
git reset --hard