文章目录
详细了解git强烈推荐Pro Git中文版本
1.1 版本控制系统
1.1.1 定义
版本控制系统是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。任何类型的文件,只要他们需要进行更新,进行版本控制都是很有帮助的。版本控制意味着记录每一次文件的修改(修改的内容和原因),你可以将选定的文件回溯到之前任意版本的状态。
1.1.2 不同版本控制系统
本地版本控制系统 | 集中化的版本控制系统 | 分布式版本控制系统 |
本地版本控制系统在本地使用简单的数据库记录文件的历次更新差异,最流行的叫RCS,原理是在硬盘上保存补丁集,通过应用补丁来计算各个版本的文件内容。如今许多计算机系统上都还看得到它的踪影
CVCS让不同系统的开发者协同工作,管理员可以轻松掌控每个开发者的权限。
DVCS客户端不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录。这类系统都可以指定和若干不同的远端代码仓库进行交互。籍此,你就可以在同一个项目中,分别和不同工作小组的人相互协作。该类系统包括Git、Mercurial、Bazaar 以及 Darcs 等
1.2 git简介
1.2.1 git简史
Linux 内核开源项目有着为数众多的参与者。 1991-2002年之间,绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。 他们对新的系统制订了若干目标:
1. 速度
2. 简单的设计
3. 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
4. 完全分布式
5. 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
诞生以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统
1.2.2 git简介
存储每个文件与初始版本的差异 | 存储项目随时间改变的快照 |
在 Git 中,每当你提交更新或保存项目状态时,它基本上就会对当时的全部文件创建一个快照并保存这个快照的索引。 为了效率,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。
Git 中的绝大多数操作都只需要访问本地文件和资源
Git 保证完整性。Git 中所有的数据在存储前都计算校验和,然后以校验和来引用。 这意味着不可能在 Git 不知情时更改任何文件内容或目录内容。
Git 操作几乎只往 Git 数据库中添加数据。因此一旦你提交快照到 Git 中, 就难以再丢失数据
1.2.3 git的状态和工作流程
- 已修改表示修改了文件,但还没保存到数据库中。
- 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
- 已提交表示数据已经安全地保存在本地数据库中。
基本的git工作流程为:
- 在工作区中修改文件。
- 将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。
- 提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。
1.3 安装配置
1.3.1 git使用方式
可以使用原生的命令行模式,也可以使用 GUI 模式命令行模式才是王道。1.3.2 git安装
去官网下载安装1.3.3 git的配置信息
Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量。 这些变量存储在三个不同的位置:/etc/gitconfig, ~/.gitconfig 或 ~/.config/git/config 文件, 当前仓库的 Git 目录中的 config 文件(即 .git/config)。分别是操作系统每个用户的通用配置、当前用户的通用配置、当前仓库的配置。修改时分别传递--system, --global, --local
。在 Windows 系统中,Git 会查找 $HOME 目录下(一般情况下是 C:\Users\$USER )的 .gitconfig 文件。
你可以通过以下命令查看所有的配置以及它们所在的文件:
$ git config --list --show-origin
1.3.4 配置用户信息
安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改(注意是不能修改之前版本的信息,而非不能修改配置):$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
1.3.5 检查配置信息
使用git config --list
列举当前git的配置,使用如git config user.name
查看某一项配置
1.4 获取帮助
使用 git help [verb], git [verb] --help, man git-[verb]
来查找git命令的手册,如git help config
得到git config的命令手册。获取简短的用法使用-h参数,如想得到git add的帮助命令行输入
git add -h