记录git知识点,方便随时查看

1. 关键词:同一文件 | 暂存区(stage) | 工作区(work director) | 同时修改
现有一分支master ,其中有一个文件common.txt,内容如下(工作区是clean的),
git点滴记录
然后修改放入暂存区
git点滴记录
接下来继续修改工作区中的common.txt文件内容
git点滴记录
通过上图可以看到,工作区和暂存区都不是clean的,如果要将暂存区的文件内容移回(unstage)工作区,可以以下两种不同的操作过程,结果是否一样呢?

1)第一种是直接使用命令 git restore --staged common.txt , 然后查看文件状态和内容,如下图
git点滴记录
可以看到该方式暂存区已经clean了,但是暂存区的内容并没有移回工作区

2)第二种方式是先clean工作区,然后在移回暂存区文件内容,如下图
git点滴记录
可以看出先restore工作区文件,然后在restore --staged 暂存区文件,可以使暂存区文件内容移回工作区

-------------------------------------------------------------------------------------------------------------------------------------------

2. 关键词:切换分支 | 暂存区
暂存区不属于某个分支,就像工作区不属于某个分支一样,如果暂存区有内容待提交,切换分支时,会看到暂存区的文件,如下图所示
git点滴记录
如果此时(当前已切换到master)进行提交操作(commit),则暂存区的改动被提交到master分支。

3. 关键词:合并分支 | fast forwadr --no-ff
合并分支中有 fast forward 和–no-ff,两种方式。两者有何区别?

1)首先看fast forward方式。dev分支有两次提交,如下图所示
git点滴记录
然后将dev合并到master分支(git默认是fast-forward),使用git log --graph命令查看
git点滴记录
从上图可以看出,使用fast-forward无法看到在dev分支有哪些提交记录。 注意:dev分支的每个提交点信息都存在,没有丢失,只是无法识别哪些提交点信息是由dev分支贡献。

2)第二种方式–no-ff。使用命令 git merge --no-ff dev 将dev合并到master分支,合并后查看log如下图
git点滴记录
从上图可以看出, --no-ff 合并方式可以看出哪些提交点由分支dev贡献。注意:合并后会产生一个新的提交点(上图中为6ff57)。

相关文章: