git 学习小结

2018-08-11  本文已影响11人  __RY__

Git

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

林纳斯·托瓦兹自嘲地取了这个名字“git”,该词源自英国俚语,意思大约是“混账”。

I'm an egotistical bastard, and I name all my projects after myself. First Linux, now git.

实现原理

git更像一个文件系统,直接在本机上获取数据,不必连线到主机端获取数据。 每个开发者都可有全部开发历史的本地副本,changes从这种本地repository复制给其他开发者。这些changes作为新增的开发分支被导入,可以与本地开发分支合并。

分支是非常轻量级的,一个分支仅是对一个commit的引用。

git是用C语言开发的,以追求最高的性能。git自动完成垃圾回收,也可以用命令git gc --prune直接调用。

git存储每个新创建的object作为一个单独文件。为了压缩存储空间占用, packs操作把很多文件(启发式类似名字的文件往往具有类似内容)使用差分压缩入一个文件中(packfile),并创建一个对应的索引文件,指明object在packfile中的偏移值。新创建的对象仍然作为单独文件存在。repacks操作非常费时间,git会在空闲时间自动做此操作。也可用命令git gc来直接启动repack。packfile与索引文件都用SHA-1作为校验和并作为文件名。git fsck命令做校验和的完整性验证。

Git服务器典型的TCP 监听端口为9418。

库目录

  • hooks:存储钩子的文件夹
  • logs:存储日志的文件夹
  • refs:存储指向各个分支的指针(SHA-1标识)文件
  • objects:存放git对象
  • config:存放各种设置文档
  • HEAD:指向当前所在分支的指针文件路径,一般指向refs下的某文件

基本概念

我们先来理解下Git 工作区、暂存区和版本库概念

  • 工作区 (working directory):就是你在电脑里能看到的目录。
  • 暂存区 (staging index):英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库 (git diretory[Repository]):工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git 安装

git 支持windows、MAC OS X、Linux/Unix 全平台
windows/Mac 官网下载:https://www.git-scm.com/download/
Ubantu:sudo apt-get install git
CentOS:sudoyum install git
检查是否安装成功:git --version 查看git版本

Git基本命令

Git状态

Git撤销操作

Git 文件删除

分支的合并

存储变更

Github上的仓库

远程服务器上的仓库

Git ssh免密登录

上一篇下一篇

猜你喜欢

热点阅读