1、什么是版本控制
“版本控制”,倒过来读,,即“控制版本”!
版本控制系统是帮助你控制(或管理)某个事物(通常是源代码)的不同版本。
版本控制系统信息
有很多版本控制系统可供我们选择。单凭这一点就证明版本控制非常重要。以下是三大最热门的版本控制系统:
版本控制系统模型包括两大主要类型:
- 集中式模型-所有用户都连接到一个中央的主仓库(master repository)
- 分布式模型-每个用户都在自己的计算机上拥有完整的仓库
结论:版本控制系统的主要目的是帮助你保留项目的详细历史记录,并且能够在不同的版本上进行工作。保留详细的项目历史记录很重要,因为这样可以看出一段时间内项目的进度。如果需要,你还可以回到项目的某个阶段,并恢复数据或文件。
2、日常工作中的版本控制
- 日常生活中,在word里编辑文字,使用Ctrl + z撤销,或者点击撤销按钮,其实也是一个版本控制的例子
- 对于git来说,版本控制功能更加强大
3、Git 和 版本控制术语
- 关于先学习Git 还是 先学习版本控制术语的问题,不需要纠结,先学习一些版本控制术语,可以在Git学习中事半功倍
Git 关键术语
版本控制系统 (VCS) 或源代码管理器 (SCM): VCS 的作用包括:将文件或整个项目还原到之前的状态;查看一段时间内所做的更改;查看是谁做了最后修改而引发问题;引发问题的具体内容以及时间等。
提交(snapshot):Git 的数据就像一组迷你文件系统的快照。每次在 Git 中提交或保存项目状态时, Git 会立刻对所有文件进行拍照,并存储这组快照的索引。
仓库(repo): 一个包含项目工作以及用于与 Git 联络的文件(在 Mac OS X 中默认隐藏)的目录,既可存在于本地计算机上,也可作为另一台计算机的远程副本。
工作目录 :即计算机文件系统中的文件。当你在代码编辑器中打开项目文件时,就是在处理工作目录中的文件。
工作目录中的文件与仓库中保存(提交中)的文件不同。
使用 Git 时,工作目录也不同于当前工作目录命令行的概念,当前工作目录是你的shell正在“查看”的目录。
检出/新建:仓库中的内容被复制到工作目录。文件、提交、分支等都可从仓库检出。
暂存区、暂存索引或索引:Git 目录中的一个文件,用于存储下一次提交的相关信息,相当于 Git 处理下一次提交的准备区域。暂存区中的文件将被添加进仓库。
SHA: SHA 基本上就是每次提交的 ID 号码,是由 40 个字符(0-9 和 a-f)组成的字符串,根据 Git 中的文件内容或目录结构计算而成。“SHA”是“SHA散列”的简写。以下就是一个 SHA 的例子:
e2adf8ae3e2e4ed40add75cc44cf9d0a869afeb6
分支:当创造出一个新的开发线,并从开发主线分离后,就产生了一个分支。这条开发线可在不影响主线的同时继续工作。就像游戏中的进度保存点,你可以把分支想象成游戏中决定尝试冒险之前点击保存点
的位置,若冒险失败,就可以回到保存点。分支功能强大的关键在于,你可以在一个分支上创建保存点,然后切换到不同的分支再次创建保存点。
术语
版本控制系统/源代码管理器
版本控制系统 简称VCS是一个管理源代码不同版本的工具。
源代码管理器 简称SCM是版本控制系统的另一个名称。
Git是SCM,因此也是VCS!,Git网站的URL是 https://git-scm.com/
提交 (commit)
Git将数据看做微型文件系统的一组快照。每次commit,它都会对文件当时的状况拍照,并存储对该快照的引用。类似于游戏中的保存点,他会保存项目的文件和关于文件的所有信息。
你在git中所有的操作都是帮助你进行commit,因此commit是git中的结基本单位
仓库(Repository/repo)
仓库是一个包含项目内容以及几个文件的目录,用来与git进行通信。仓库可以存储在本地,或作为远程副本存储在其他计算机上。仓库由commit构成
工作目录/工作区(working Directory)
工作目录是你在计算机的文件系统中看到的文件,与这些文件形成对比的是保持在仓库中(在 commit 中!)的文件。
在使用 Git 时,工作目录与命令行工具的 current working directory (当前工作目录)不一样,后者是 shell 当前正在查看的目录。
检出(Checkout)
检出是指将仓库中的内容复制到工作目录下
暂存区 / 暂存索引 / 索引(Staging Area / Staging Index / Index)
Git 目录下的一个文件,存储的是即将进入下个 commit 内容的信息。可以将暂存区看做准备工作台,Git 将在此区域获取下个 commit。暂存索引中的文件是准备添加到仓库中的文件。
SHA
SHA 是每个 commit 的 ID 编号。以下是 commit 的 SHA 示例:e2adf8ae3e2e4ed40add75cc44cf9d0a869afeb6。
它是一个长 40 个字符的字符串(由 0–9 和 a–f 组成),并根据 Git 中的文件或目录结构的内容计算得出。SHA 的全称是"Secure Hash Algorithm"(安全哈希算法)。
分支(Branch)
分支是从主开发流程中分支出来的新的开发流程。这种分支开发流程可以在不更改主流程的情况下继续延伸下去。
回到之前关于游戏保存点的示例,你可以将分支看做在游戏中设立保存点后,尝试一个有风险的招式。如果有风险的招式不奏效,则回到保存的位置。令分支非常强大的关键之处是你可以在一个分支上设定保存点,然后切换到另一个分支并继续设定保存点。
image.png工作目录(working directory)文件有改动,git会知道,然后会有改动标记,然后你放到 暂存区(Staging Index),commit的时候就会直接提交到 仓库(Repository)
在进行 commit 时,只有暂存区的更改会保存到仓库中
每次提交的内容,都会在仓库里保存
git的核心是将文件改记录为提交,这些提交都保存在仓库
4、Mac、Linux安装git
5、windows设置git
安装git
- 转到 https://git-scm.com/downloads
- 下载 Windows 版软件
- 安装 Git 并选择所有默认选项
安装完毕后,在命令行工具中运行 git,如果显示使用信息,则ok。
初次配置 Git
在开始使用 Git 之前,你需要配置 Git。在命令行工具中运行以下每行,确保所有选项都已被配置好。
# 设置你的 Git 用户名
git config --global user.name "<Your-Full-Name>"
# 设置你的 Git 邮箱
git config --global user.email "<your-email-address>"
# 确保 Git 输出内容带有颜色标记
git config --global color.ui auto
# 对比显示原始状态
git config --global merge.conflictstyle diff3
git config --list
Git 与代码编辑器
最后一个配置步骤是让 Git 能与你的代码编辑器结合使用。以下是三个最热门的代码编辑器。如果你使用的是其他编辑器,则在 Google 中搜索“修改 Git 默认编辑器为 X 编辑器”(将 X 替换为你的代码编辑器的名称)。
#Atom Editor 设置
git config --global core.editor "atom --wait"
#Sublime Text 设置
git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe' -n -w"
#VSCode 设置
git config --global core.editor "code --wait"
网友评论