git学习记录(一)——git工作原理

2017-12-31  本文已影响0人  greatjing

随着对git不断使用,逐步进行学习和理解,现把学习整理成一系列基础内容,供大家参考和讨论。主要包括:
1、git工作原理
2、开展git项目
3、多人合作git操作(代码拉取,回滚和撤销,合并代码)
4、其他一些辅助工具

本节对git的工作原理进行介绍:

一、git是什么

1、git是一个分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。 ——维基百科

2、从定义可知:

3、优点:

二、工作原理:

1、工作原理图,来自此处

2、工作原理图简介:
1)有四个储存概念(除远程仓库在服务端,其他都在本地存储):

2)常用场景:提交变更和同步/下载代码

提交变更
同步/下载代码

对应上面提交变更步骤,可从三处同步代码:

冲突

在提交和同步时,都要进行合并(merge),或手动或git自动合并,可能引起的冲突
(冲突:即同一文件同一位置代码不一致,git不能判断最终应该以那个为准)

3、git版本控制的相关信息存储——所有git的操作内容都放在.git文件夹
1).git是隐藏状态,在项目根目录,使用“ll -a”可查看
2)下图是本地项目的.git文件夹下内容:

3) 查看可用官网帮组:git help gitrepository-layout

4、git通过对.git文件下内容操作,进行版本控制的,下面以提交为例可查看到如何实现:

git是一套内容寻址文件系统,存储相关的键值对,然后通过键值对,对内容操作

1)在工作目录内容改变,首先进行提交(git add),实际进行了下列操作

2)在提交(git commit)后,生成commit对象

3)对于其他同步,回滚等操作,都是通过键值对不断对object中文件内容操作
tips:键值对通过哈希算法SHA-1计算,git对象存储的键值对通过文件头+文件内容进行SHA-1计算,详细请参考此处

此文章参考内容:
1.https://zh.wikipedia.org/wiki/Git
2.https://git-scm.com/book/zh/v1/Git-%E5%86%85%E9%83%A8%E5%8E%9F%E7%90%86-Git-%E5%AF%B9%E8%B1%A1
3.http://gityuan.com/2015/06/27/git-notes/

上一篇 下一篇

猜你喜欢

热点阅读