企业免费招聘网站,商标名字大全,网站建设小组实训总结,移动端的网站怎么做目录 前言一、版本控制系统1.1 什么是版本控制系统1.2 本地版本控制系统1.3 集中化的版本控制系统1.3 分布式版本控制系统 二、Git简介2.1 数据处理方式2.2 几个特点2.2.1 几乎所有操作都是本地执行2.2.2 Git保证完整性2.2.3 Git一般只添加数据 2.3 Git中文件状态2.3.1 三种文件… 目录 前言一、版本控制系统1.1 什么是版本控制系统1.2 本地版本控制系统1.3 集中化的版本控制系统1.3 分布式版本控制系统 二、Git简介2.1 数据处理方式2.2 几个特点2.2.1 几乎所有操作都是本地执行2.2.2 Git保证完整性2.2.3 Git一般只添加数据 2.3 Git中文件状态2.3.1 三种文件状态2.3.2 文件存储区域2.3.3 状态转换 三、安装四、初次安装的配置4.1 配置信息4.2 查看所有配置及所在的文件4.3 用户信息4.4 设置文本编辑器4.5 检查配置信息4.5.1 使用--list查看配置信息列表4.5.2 使用\key\获取某一项配置 4.6 获取帮助4.6.1 使用help获取完整帮助文件4.6.2 使用-h直接打印简要帮助文件 结语 老狗最光阴 蹉跎错消磨过最是光阴化浮沫。 前言
对于文件编辑有个版本控制系统可以避免文件修改偏差亦可以有一个回溯的机会。对于软件开发更是需要一个专门的工具来管理代码才能保障大量的代码修改得到有效管理。Git无疑是一个很好的工具。
一、版本控制系统
1.1 什么是版本控制系统
版本控制系统是一种文件各个版本变化内容的以便查阅或者溯源的系统一般具有历史记录查看制定版本恢复等功能。 常见的如SVNGit等都是甚至用excel记录的文件变更记录也是。。
1.2 本地版本控制系统
本地版本控制系统就是将文件的变更信息保存到本地系统中。 基础的是将自己的不同版本进行重命名改上不同的日期、版本或者备注信息就是有个版本系统了。但是这样容易混淆一不小心就有可能误删覆盖意料之外的文件。 再进一步自己用word或者excel记录的文件变更记录然后将不同版本统一保存。这样处理可以避免文件的混乱但是仍然无法避免误删覆盖的问题。 后面开始有人开发本地版本控制系统。将文件变更差异记录到数据库中然后需要的时候检出示意图如下。
1.3 集中化的版本控制系统
本地版本控制系统存在无法进行不同系统协作开发的问题。 集中化的版本控制系统Centralized Version Control Systems简称 CVCS应运而生。通过将文件版本信息保存到统一的一个服务器上来进行管理然后不同人员通过客户端连接到服务器进行文档的修改。系统管理员亦可以进行权限控制不同用户的管理等。 如 CVS、Subversion 以及 Perforce 等。 客户端通过网络访问服务器中的文件管理系统本地仅保存当前版本。实现了文件的写作开发。 但是由于文件版本全部存储与服务器中依赖于互联网进行访问当服务宕机或者网络故障时将无法进行提交或者获取版本信息等记录。
1.3 分布式版本控制系统
为了解决集中式版本控制系统依赖于网络的问题分布式版本控制系统Distributed Version Control System简称 DVCS横空出世。版本记录区分本地仓库和远程仓库。客户端将整个版本库完整的镜像下载到本地这样子即使式互联网或者服务器有故障都可以通过任何一个本地仓库进行恢复。 每一个库都是一个完整的备份这样需要暂用较多的内存控件不过可操作性就很多甚至可以做到多分子多代码交互。
二、Git简介
诞生于2005年它的速度飞快极其适合管理大项目有着令人难以置信的非线性分支管理系统。
2.1 数据处理方式
Git 更像是把数据看作是对小型文件系统的一系列快照。 在 Git 中每当你提交更新或保存项目状态时它基本上就会对当时的全部文件创建一个快照并保存这个快照的索引。 为了效率如果文件没有修改Git 不再重新存储该文件而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个 快照流。 如上图
每次变更存储的是文件当文件没有变更时设置一个链接指向旧版本的文件
2.2 几个特点
2.2.1 几乎所有操作都是本地执行
Git的所有操作几乎是在本地进行的在本地有完整的版本文件所有的多做都可以在本地完成而不用担心网络出现问题时无法提交。可以提交本地版本然后当网络恢复之后再上传。
2.2.2 Git保证完整性
Git使用SHA-1算法来进行校验所有的文件均有经过校验有丢失或损坏都会被发现。 Git文件索引直接使用hash值不使用文件名。
2.2.3 Git一般只添加数据
Git只往数据库中添加数据很难删除数据很难丢失数据。
2.3 Git中文件状态
2.3.1 三种文件状态
已修改modified 表示修改了文件但还没保存到数据库中。已暂存staged 已暂存表示对一个已修改文件的当前版本做了标记使之包含在下次提交的快照中。已提交committed 已提交表示数据已经安全地保存在本地数据库中。
2.3.2 文件存储区域
Git 项目拥有三个阶段工作区、暂存区以及 Git 仓库目录。 工作区Working Directory是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件放在磁盘上供你使用或修改。
暂存Staging Area区是一个文件保存了下次将要提交的文件列表信息一般在 Git 仓库目录中。 按照 Git 的术语叫做“索引”不过一般说法还是叫“暂存区”。
Git 仓库目录.git directory(Repository)是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分从其它计算机克隆仓库时复制的就是这里的数据。
2.3.3 状态转换 三、安装
Git的安装可参考之前的文章: Ubuntu Server搭建Git服务器 Linux学习笔记-Ubuntu系统下配置用户ssh只能访问git仓库 华为云云耀云服务器L实例评测从零搭建Git服务器并配置ssh免密访问
Git for windows软件下载路径为:Git for windows Windows版本下载路径Download for Windows Linux版本安装参考官网说明Download for Linux and Unix
四、初次安装的配置
4.1 配置信息
Git可以通过自带的git config工具来管理配置信息。将会以文件的形式存储到电脑中有三个不同的存储位置
/etc/gitconfig 文件包含系统上每一个用户及他们仓库的通用配置git config 时带上 --system 选项进行修改~/.gitconfig 或 ~/.config/git/config 文件针对当前用户的配置使用–global 选项读写此文件当前使用仓库的 Git 目录中的 config 文件 .git/config针对该仓库默认选项可以使用–local 选项让读写此文件。
各个文件的优先级如下 越具体的优先级越高。
4.2 查看所有配置及所在的文件
git config --list --show-origin结果如下 列出了所有的配置信息以及配置信息所保存的文件路径。
C:\Users\LJM git config --list --show-origin
file:D:/Program Files/Git/etc/gitconfig diff.astextplain.textconvastextplain
file:D:/Program Files/Git/etc/gitconfig filter.lfs.cleangit-lfs clean -- %f
file:D:/Program Files/Git/etc/gitconfig filter.lfs.smudgegit-lfs smudge -- %f
file:D:/Program Files/Git/etc/gitconfig filter.lfs.processgit-lfs filter-process
file:D:/Program Files/Git/etc/gitconfig filter.lfs.requiredtrue
file:D:/Program Files/Git/etc/gitconfig http.sslbackendopenssl
file:D:/Program Files/Git/etc/gitconfig http.sslcainfoD:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
file:D:/Program Files/Git/etc/gitconfig core.autocrlftrue
file:D:/Program Files/Git/etc/gitconfig core.fscachetrue
file:D:/Program Files/Git/etc/gitconfig core.symlinksfalse
file:D:/Program Files/Git/etc/gitconfig core.fsmonitortrue
file:D:/Program Files/Git/etc/gitconfig pull.rebasefalse
file:D:/Program Files/Git/etc/gitconfig credential.helpermanager-core
file:D:/Program Files/Git/etc/gitconfig credential.https://dev.azure.com.usehttppathtrue
file:D:/Program Files/Git/etc/gitconfig init.defaultbranchmaster4.3 用户信息
安装Git后配置用户信息一般设置全局的用户名和邮箱只需要设置一次后续都会使用该信息进行提交
git config --global user.name 具体的用户名引号包裹
git config --global user.email 具体的邮箱信息不需要引号若需要指定单独项目的邮箱和用户名则使用不带“–global”参数的设置指令重新设置即可。
4.4 设置文本编辑器
未配置Git 会使用操作系统默认的文本编辑器若有需要可以通过core.editor参数设置成不同的编辑器。
git config --global core.editor 编辑器名称4.5 检查配置信息
4.5.1 使用–list查看配置信息列表
git config --list注 此时可能会有重复的数据因为不同文件可能存在一样的配置信息重复是Git一般使用找的的最后一个配置。
C:\Users\LJMgit config --list
diff.astextplain.textconvastextplain
filter.lfs.cleangit-lfs clean -- %f
filter.lfs.smudgegit-lfs smudge -- %f
filter.lfs.processgit-lfs filter-process
filter.lfs.requiredtrue
http.sslbackendopenssl
http.sslcainfoD:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlftrue
core.fscachetrue
core.symlinksfalse
core.fsmonitortrue
pull.rebasefalse
credential.helpermanager-core
credential.https://dev.azure.com.usehttppathtrue
init.defaultbranchmaster4.5.2 使用key获取某一项配置
示例
git config user.nameC:\Users\LJMgit config user.name
Zero.Lin4.6 获取帮助
4.6.1 使用help获取完整帮助文件
可以通过help指令获取git帮助一下是三种获取帮助的指令
# 指令1
git help verb
# 指令2
git verb --help
# 指令3
man git-verb注 verb 是具体的功能模块指令。
示例
git help config直接打开了帮助网页了
4.6.2 使用-h直接打印简要帮助文件
git verb -h注 verb 是具体的功能模块指令。
示例
C:\Users\LJMgit config -h
usage: git config [options]Config file location--global use global config file--system use system config file--local use repository config file--worktree use per-worktree config file-f, --file file use given config file--blob blob-id read config from given blob objectAction--get get value: name [value-pattern]--get-all get all values: key [value-pattern]--get-regexp get values for regexp: name-regex [value-pattern]--get-urlmatch get value specific for the URL: section[.var] URL--replace-all replace all matching variables: name value [value-pattern]--add add a new variable: name value--unset remove a variable: name [value-pattern]--unset-all remove all matches: name [value-pattern]--rename-section rename section: old-name new-name--remove-section remove a section: name-l, --list list all--fixed-value use string equality when comparing values to value-pattern-e, --edit open an editor--get-color find the color configured: slot [default]--get-colorbool find the color setting: slot [stdout-is-tty]Type-t, --type type value is given this type--bool value is true or false--int value is decimal number--bool-or-int value is --bool or --int--bool-or-str value is --bool or string--path value is a path (file or directory name)--expiry-date value is an expiry dateOther-z, --null terminate values with NUL byte--name-only show variable names only--includes respect include directives on lookup--show-origin show origin of config (file, standard input, blob, command line)--show-scope show scope of config (worktree, local, global, system, command)--default value with --get, use default value when missing entryC:\Users\LJM结语
本文介绍了Git的 一些发展历程和基本原理等信息是Git的一些基本信息是使用Git的基础。