赞
踩
版本控制:一种 记录对文件或文件集的更改 的系统,每对文件或文件集做一次修改都可以生成一个版本,用户可以在之后重新获取想要的某个版本。
版本控制系统(Version Control System VCS),可以实现一下功能:
本地版本控制:使用数据库,将文件的不同版本都保存在本地电脑上,想使用哪个版本就从数据库获取对应的文件内容。
最流行的版本控制工具是RCS系统,将补丁集(新旧文件之间的差异)保存在磁盘上,通过添加某个时间点的补丁,实现将文件恢复到该补丁对应的文件内容。
集中式版本控制是为了实现不同开发人员在不同主机上协作开发,将所有版本化文件放在一个服务器上,多个主机可以向该服务器提交文件更改或下载文件。
集中式版本控制的优缺点
优点:
缺点:
Linux内核维护的早期(1991-2002)一直使用的是补丁或存档文件进行传递,到2002年开始使用分布式版本控制系统BitKeeper。但是2005年Linux开源社区与BitKeeper公司关系破裂,BitKeeper公司收回了免费权限。这促使Linux开发社区开发自己的工具,2005年分布式版本控制系统Git诞生。其目标是:速度、设计简单、强烈支持非线性开发、完全分布式、能够处理大型项目。
理解git的工作原理有助于你高效的使用git
其它版本控制工具:
大多数版本控制系统将信息存储为基于文件的更改列表,如CVS、Subversion、Perforce等,它们将存储的信息是为一组文件,以及随时间推移对每个文件所做的更改。这种称为基于增量式的版本控制。简单的理解就是大多数版本控制系统,每次只保存版本更改所涉及到的文件。
如图,每个版本更改只保存涉及到更改的文件,没有发生改变的文件不用再次保存。
Git版本控制工具:
而Git在我们每次提交更改或者保存时,都会拍下所有文件当时的样子。并存储该快照的引用。为了高效,git不会重复保存没有更改的文件,指挥链接到该文件已经存储的前一个相同的文件。
如图,Git每次版本更改时,Git都会拍下所有文件当时的样子,并存储对该快照的引用。
由于Git在本地保存了整个项目历史,这使Git的大多数操作都仅仅是在本地文件进行操作,因此Git避免了网络带宽限制,其速度非常快,每个操作似乎都是即时的。
例如,当你想浏览项目的历史时,你不用去服务器获取这些信息,直接在本地副本中查找项目历史即可。而且如果你处于离线状态,你可以先对文件做出更改,然后上传的本地副本,网络连接以后再上传到服务器。
任何文件保存在Git之前都要进行校验和,整个校验和作为文件名保存文件,这意味着git不知道时就不能对文件进行更改。
Git的这种校验机制被称为SHA-1 hash,它们由40个十六进制字符组成的字符串,根据git种文件结构的内容计算。
git保存文件时使用的不是文件名而是该文件内容的hash值。
这里不太理解
当你在Git中执行操作时,几乎所有操作都只向Git数据库中添加数据。很难让系统做任何不可撤销的事情,也很难让它以任何方式擦除数据。与任何VCS一样,您可能会丢失或弄乱尚未提交的更改,但在将快照提交到Git后,很难丢失,尤其是当您定期将数据库推送到另一个存储库时。
需要牢记
Git有三种主要的文件状态:已修改、暂存和提交
引出了Git项目的三个重要部分:工作树、暂存区和Git目录
基本的Git工作流程如下:
如果一个文件的版本在Git目录中,就是提交状态;
如果文件已经被修改并且加到暂存器,就是暂存状态;
如果文件被修改但没有被暂存,就是修改状态。
命令行是唯一可以运行所有git命令的地方,
CentOS版本,执行以下指令:
$ sudo dnf install git-all
Ubuntu版本,执行以下指令:
$ sudo apt install git-all
Git网站上有关于在几种不同Unix发行版上安装的说明,网址为https://git-scm.com/download/linux.
最简单的方法是安装Xcode命令行工具,苹果官方Xcode下载地址https://developer.apple.com/xcode/downloads/。安装Xcode以后,如果没有安装git。可以运行以下命令安装git:
$ xcode-select --install
。
去git官网下载mac安装程序,https://git-scm.com/download/mac
直接官网下载安装包:https://git-scm.com/download/win,下载后自动安装即可。
git config工具可以让我们获取或设置配置变量,可以控制Git的外观和操作。这些变量被保存在3个地方:
[path]/etc/gitconfig
文件:系统配置文件,包含该系统上的所有用户和他们的存储库的值,将--system
传递给git config
可以专门对该文件读写,必须使用管理员或超级用户才能修改该文件。~/.gitconfig
or~/.config/git/config
文件:用户个人特有的值,通过传递--global
选项来读写该文件,会影响所有存储库。config
文件:具体到单个存储库,可以使用--local
选项读写该文件(默认选项),需要位于一个Git存储库内的某个位置才可以使用这个选项。每一个级别都覆盖上一个级别的值,比如.git/config
中的值会覆盖[path]/etc/gitconfig
中的值。
查看所有设置及其来源:$git config --list --show-origin
每一次Git提交都会使用到用户信息,所以安装git以后首先要设置自己的用户名和邮箱地址。使用以下指令
$ git config --global user.name "Jogn Doe"
$ git config --global user.email johndoe@example.com
使用--global
设置用户信息以后,在该系统上的每次操作都会被认为是该用户的操作,如果想对特定的项目修改用户信息,可以使用不带--global
的该指令进行覆盖,如$ git config user.name "Jogn Doe"
用户信息配置以后,可以配置默认文本编辑器,如果不配置,Git将使用系统默认编辑器。
切换其它编辑器,如Emacs:
$ git config --global core.editor emacs
在Windows系统上,必须给出编辑器的exe文件的完整路径,如Notepad++编辑器:
$ git config --global core editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
在使用git init
创建存储库时,git会默认创建一个名为master的默认分支。可以修改分支名。如修改分支名为mian,使用以下命令:
$ git config --global init.defaultBranch main
git config --list
命令可以列出设置配置的键值对$ git config --show-origin rerere.autoUpdate
获取git综合手册页帮助,有3种方式:
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
比如,可以使用以下命令获取git config命令的手册帮助:$ git help config
使用-h
选项来获取简介的帮助:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。