前言:
本文讨论,各个处理逻辑中版本的表述、比较中,git的操作的细节和表述符合的具体意义:(非常细节,会的朋友可以跳过)
对于 遇到的各个命令,会给出详细的解释在附录里面;
理解git文档的四个状态
【hsy案】git 就是一个 版本控制,其实也没有啥复杂的, 怎么理解呢,
这是一个百度的图,其实很简单,首先,新建一个文档,这个文档我们还没决定要加到文档库里面的时候,他就是untracked的状态(这个很好理解,就是我们还没决定要跟踪他的版本),然后,我们用git add可以加加到我们的版本控制里面,就是成了我们自己在编一个文档,那就是modified的状态,如何保存呢,wps用过的同学知道wps文档也有 保存,而且云保存,那么问题来了,用过WPS保存的同学肯定遇到一个问题,如果,一个时间长了,文档根本就不清楚自己当时在写什么,如果再加上协同编辑,往往发生冲突。git就是考虑到多人编辑可能出现的问题,解决的办法就是你自己先确认一下,怎么确认呢,那就是再用git add,进入到staged的暂存阶段,在这里你的文档都保存了,但是, 只是保存了,还没有确认。 通过git commit的命令我们再确认一下,commit之后,这个文档就是我们进入版本控制后最新的文档,同时,他的状态也从modified -> unmodified ,然后,就是这几个状态来回切换,就这么简单的东西。
git 的版本树的处理逻辑:
上图,比我们看到的第一个图更复杂一点,复杂在哪里呢?
其实,就是复杂在git的版本协调,支持分布式的点分配,这样本地仓库有和远程仓库同步问题。用push,
上图各个版本的check in / out, push pull的操作 都有以版本的比较为前提。
当然,我们看到,其实diff也有diff HEAD这样的方式。
1 diff比较的图形操作:
git 的处理一般都CMD的方式, 但是,为了 快的表述,我们用gitgui的版本进行讨论和cmd的版本是一致的。
下图为git gui的代码树
git gui 里面选择的时候,蓝色为你当前选择的版本:
然后,你可以通过右击 来选择要比较的版本
diff this -> selected
表述,比较右键指向的版本和已经选择的版本(蓝色)
diff selected -> this
表述,比较已经选择的版本(蓝色)和右键指向的版本和
这两个的区别,在与,哪个版本为 -,哪个版本为 +的表述
基础的细节:
1.1 高亮显示的版本讯息
1.1.1 有git 仓库的 项目文件夹会带蓝色的后缀:
如下:master后缀
【案】如何获取版本讯息?
我们前面的章节提到在各个版本中切换自如,
1.2 diff 比较的符号表示
1.2.1 比较开始的行号 和结束的行号
1.2.2 比较的 新文件、原文件的表述
参考:
1 git for windows的下载:
2 git diff 的简单应用
https://www.cnblogs.com/taohuaya/p/11107264.html