git的一些关键理解

    对于git的命令使用得虽多,但总是一知半解,知其然不知其所以然,要能够深入的理解这些命令,必须得理解一些关键性的概念或者说是对象。正如要理解maven一样,首先要理解pom(项目对象模型)这个概念。

首先要理解工作区,暂存区以及版本库这三个概念,你本地电脑上的一个git项目就是由这三个对象组成的。

工作区就是在硬盘中打开一个git项目的文件夹,你看到这个目录下的所有文件及子目录都是工作区,你在这个目录下使用任何方式(除了git 命令)操作文件,在git中都是对于工作区的操作。

版本库其实也是你git项目目录下的一个文件夹,不过它是一个隐藏的文件夹,具体细节不用太深究。这个版本库就管理了这个git项目的各种历史版本,这个git项目的各种不同版本的详细信息都记录在版本库里面

暂存区也是项目下的一个隐藏文件夹,在逻辑上可以看作介于工作区和版本库中间的一个区域,见名知意,它就是一个暂时保存更改的一个区域。

这个三个区域可以按照修改的频繁度来排序,设计逻辑也可以这样来理解。工作区是直接操作的区域,也就是频繁修改的区域。每一次修改不可能都生成一个版本,但是有需要保存某些修改,所以可以把一些修改保存到暂存区。当暂存区累积了一些修改,需要把这些修改生成一个版本的时候,就把这些修改提交到版本库,然后就在版本库中生成了这个项目的一个新版本,包含了这次提交的修改。这就是本地git的一个简单流程了。

理解了这三个对象之后,对git的很多命令的用法也就能够理解了。比如git diff 命令:

git diff 是工作区与暂存区的差异比较

git diff --cached 是暂存区和版本库中HEAD(版本库的一个指针变量,指向某一次提交)指向的一个提交的版本比较

git diff HEAD 是工作区与版本库HEAD指向的一个提交的版本比较

还有其他的git命令无非就是这三个区域的交互。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 11,059评论 1 17
  • 你看 我们神仙和凡人谈恋爱是触犯天条的! 向来心是看客心,奈何人是剧中人。 你说我连爱都不懂,我哪来的能力去爱别人...
    路不摇阅读 2,635评论 1 6
  • 为何这般美的回忆 竟让我酸了喉咙 湿了眼眶 那时 日子过得很慢 未来还很远 以后还很长 而今 时间白驹过隙 未来竟...
    AkiSun是有梦想的女文青阅读 2,790评论 0 1
  • 在我现在带的三个班里面,有几个对我而言很特殊的学生,都是男孩。 其中一个男孩,让我第一次有了深深的挫败感,觉得自己...
    林上雪阅读 4,084评论 14 20

友情链接更多精彩内容