GIT使用—一些概念
(1)Git版本库(repository)
一个简单的数据库,包括所有用来维护与管理项目的修订版本和历史的信息。
Git维护两个主要的数据结构:
- 对象库(object store)—在复制操作时能进行有效复制,用来支持完全分布式VCS的一种技术。
 - 索引(index)—暂时的信息,对版本库来说是私有的,并且可以在需要时按需求进行创建和修改。
 
(2)Git对象类型
1、块(blob)
文件的每一个版本表示为一个块
2、目录树(tree)
代表一层目录信息
3、提交(commit)
保存版本库中每一次变化的元数据,包括作者、提交者、提交日期和日志消息
4、标签(tag)
分配一个任意的可读名字给一个特定对象,通常是提交对象
(3)索引
是一个临时的、动态的二进制文件,描述整个版本库的目录结构。
索引捕获项目在某个时刻的整体结构的一个版本。
工作原理:
作为开发者,通过执行Git命令在索引中暂存变更,索引会记录和保存这些变更,保障它们的安全直到开发者准备提交。
(4)可寻址内容名称
Git对象库被组织及实现成一个内容寻址的存储系统。每个对象都有一个唯一的名称,如:0a3071601cc10777e271a952ead46cffba233e24
(5)Git追踪内容
1、当Git放置一个文件到对象库中时,它基于数据的散列值而不是文件名,即便两个文件内容一样,无论是否在相同的目录,Git只保存一份块形式的内容副本。
2、当文件从一个版本变到下一个版本时,Git的内部数据库有效地存储每个文件的每个版本,而不是它们的差异。
(6)打包文件
创建一个打包文件,Git首先定位内容非常相似的全部文件,然后为它们之一存储整个内容,之后计算相似文件之间的差异并只存储差异。
(7)对象库图示


(8)Git中的文件分类
- 已追踪的(Tracked)
 - 被忽略的(Ignored)
 - 未追踪的(Untracked)
 
(9)git commit的一些注意事项
git commit --all
-a 或 --all 会导致执行提交之前自动暂存所有未暂存和未追踪的文件变化,包括从工作副本中删除已追踪的文件。
(10)其他使用技巧
查看版本库文件信息
[root@localhost public_html]# git ls-files --stage
100644 8638631b774c05291d21eb5541aa546d2bd6cf85 0	foo.html
100644 8638631b774c05291d21eb5541aa546d2bd6cf85 0	index.html
将一个文件由已暂存转化为未暂存
[root@localhost public_html]# git rm --cached index.html
强制删除文件
[root@localhost public_html]# git rm -f index.html
恢复文件的旧版本
[root@localhost public_html]# git checkout HEAD -- index.html
取消已缓存的内容
[root@localhost public_html]# git reset HEAD -- hello.php
												
											GIT使用—一些概念的更多相关文章
- git 利用分支概念实现一个仓库管理两个项目
		
需求描述:开发了一个网站,上线之际,突然另一个客户说也想要个一样的网站,但网站的logo和内部展示图片需要替换一下,也就是说大部分的后台业务逻辑代码都是一致的,以后升级时功能也要保持一致:刚开始想反正 ...
 - Git 入门:概念、原理、使用
		
出处: git入门:概念.原理.使用 git和Github 概念 Git --- 版本控制工具(命令). git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.git ...
 - GIT入门笔记(1)-  Git的基本概念
		
一.概念和定义 1.git是什么 许多人习惯用复制整个项目目录的方式来保存不同的项目版本,或许还会改名加上备份时间以示区别.这么做唯一的好处就是简单.不过坏处也不少:有时候会混淆所在的工作目录,一旦弄 ...
 - Git 的核心概念解读
		
本文不是Git使用教学篇,而是偏向理论方面,旨在更加深刻的理解Git,这样才能更好的使用它,让工具成为我们得力的助手. 版本控制系统 Git 是目前世界上最优秀的分布式版本控制系统.版本控制系统是能够 ...
 - git的一些概念和技巧
		
1. 分支代表最后三个commit(即HEAD, HEAD^和HEAD~2),前一个commit,也用HEAD~1 2. 查看一个文件的改动历史git log (--pretty=oneline) - ...
 - 理解 Git 的基本概念 ( Merging  Collaborating Rebasing)
		
合并 Merging 在分支上开发新功能后,如何把新功能加入到主分支,让其它人得到你的修改呢?你需要使用命令 git merge 或 git pull. 这两个命令的语法如下: git merge [ ...
 - git分支合并概念
		
git merge命令用于合并指定分支到当前分支. git merge命令用于合并指定分支到当前分支. git merge命令用于合并指定分支到当前分支. 创建与合并分支 阅读: 931277 在版本 ...
 - Git的一些概念(二)
		
一.Git的结构 二.Git和代码托管中心 代码托管中心的任务:维护远程库 1. 局域网内 GitLab 服务器 -- 可以自己搭建 2. 外部环境 GitHub 码云 三.本地库和远程库 1. 团队 ...
 - Git 的核心概念
		
本文不是Git使用教学篇,而是偏向理论方面,旨在更加深刻的理解Git,这样才能更好的使用它,让工具成为我们得力的助手. 版本控制系统 Git 是目前世界上最优秀的分布式版本控制系统.版本控制系统是能够 ...
 
随机推荐
- 用MathType编辑上下尖括号有什么技巧
			
在MathType中,同一个数学符号可以进行各种变换方向的使用,就比如箭头符号,任意方向都可以使用,这也是很常见的.数学中的符号能够根据各种特殊需要进行灵活使用,除了箭头符号之外,其它符号也可以,比如 ...
 - poj 3498(最大流+拆点)
			
题目链接:http://poj.org/problem?id=3498 思路:首先设一个超级源点,将源点与各地相连,边容量为各点目前的企鹅数量,然后就是对每个冰块i进行拆点了(i,i+n),边容量为能 ...
 - Oracle体系机构
			
Oracle 体系结构1.文件:数据库组成和实例文件;2.系统全局区:SGA内存结构,SGA PGA UGA关,也研究SGA和java池,共享池和大部分的池;3.物理进程和线程 server进程 ba ...
 - WebSocket入门教程(五)-- WebSocket实例:简单多人聊天室
			
from:https://blog.csdn.net/u010136741/article/details/51612594 [总目录] WebSocket入门教程--大纲 [实例简介] ...
 - 解决百度地图Fragment切换黑屏问题
			
https://blog.csdn.net/rentalphang/article/details/52076330 轻松解决啦!
 - python中的 try...except...finally 的用法
			
python中的 try...except...finally 的用法 author:headsen chen date:2018-04-09 16:22:11 try, except, final ...
 - 《从零开始学Swift》学习笔记(Day 57)——Swift编码规范之注释规范:文件注释、文档注释、代码注释、使用地标注释
			
原创文章,欢迎转载.转载请注明:关东升的博客 前面说到Swift注释的语法有两种:单行注释(//)和多行注释(/*...*/).这里来介绍一下他们的使用规范. 1.文件注释 文件注释就在每一个文件开头 ...
 - mongoDB-----针对某个或多个文档只需要部分更新可使用原子的更新修改器
			
update() db.collection.update( <query>, <update>, { upsert: <boolean>, multi: < ...
 - 巨蟒python全栈开发-第13天 内置函数 匿名函数lambda
			
一.今日内容总览 1.内置函数(1):并不是每一个内置函数都是那么常用 上菜:内置函数部分//思维导图:https://www.processon.com/view/link/5b4ee15be4b0 ...
 - 我有一台 PC,上面有摄像头,怎么进行一场直播?
			
如何推流与播放_Web端直播实践_最佳实践_视频直播-阿里云 https://help.aliyun.com/document_detail/57251.html?spm=a2c4g.11186623 ...