1 起步

关于版本控制

有了版本控制系统可以将选定文件回溯到之前的版本,可以比较文件的变化细节,查找出是谁修改了哪个地方。同时还意味着就算项目文件被乱改乱删也能轻松恢复。

为了让在不同系统上的开发者协同工作,集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS)应运而生。这类系统有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们通过客户端连到服务器,取出最新的文件或者提交更新。

这么做最显而易见的缺点是中央服务器的单点故障。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。 本地版本控制系统也存在类似问题,只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。

于是分布式版本控制系统(Distributed Version Control System,简称 DVCS)面世了。客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

Git 是什么

Git 更像把数据看作对小型文件系统的一系列快照。在 Git 中,每当你提交更新或保存项目状态时,它基本上就会对当时的全部文件创建一个快照并保存这个快照的索引。 为了效率,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个 快照流。

同时 Git 绝大多数操作都在本地执行,不需要连接远程来自网络上其他计算机的信息。Git 也一般只向数据库添加数据,因此很难丢失数据,特别是定期推送到其他仓库的时候

Git 管理下的文件有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。

  • 已修改表示修改了文件,但还没保存到数据库中。
  • 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
  • 已提交表示数据已经安全地保存在本地数据库中。

基本的 Git 工作流程如下:

  1. 在工作区中修改文件。
  2. 将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。
  3. 提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。

Git 命令行

只有命令行下才能执行 Git 的所有命令,大多数 GUI 软件只实现了 Git 所有功能的子集。

查看所有配置以及它们所在的文件

$ git config --list --show-origin

初次运行前的配置

安装完 Git 后第一件事就是设置用户名和邮件地址。

$ git config --global user.name "TedXiong"
$ git config --global user.email xiongfeng2011@foxmail.com

使用了 --global 选项,那么该命令只需要运行一次,如果想要在不同项目使用不同的用户名和邮件地址,以在那个项目目录下运行没有 --global 选项的命令来配置。

可以通过输入 git config : 来检查 Git 的某一项配置

$ git config user.name

需要帮助时

$ git help <verb>
$ git <verb> --help
$ man git-<verb>
posted @ 2020-08-23 22:43  PotatoTed  阅读(81)  评论(0)    收藏  举报