CVS、SVN、Git
在git 之前,最先出现了 cvs,然后出现了 svn,最后才是 git 。现在 cvs 和 svn 已经基本不再使用了。
CVS和SVN都是是属于集中式版本控制系统(Centralized Version Control Systems,简称 CVCS)
- 它们的主要特点是单一的集中管理的服务器,保存所有文件的修订版本;
- 协同开发人员通过客户端连接到这台服务器,取出最新的文件或者提交更新;
但是集中式版本控制也有一个核心的问题:中央服务器不能出现故障:
- 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作;
- 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据;
Git是属于分布式版本控制系统(Distributed Version Control System,简
称 DVCS)
- 客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录;
- 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复;
- 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份;
Bash – CMD – GUI 区别
- Bash,Unix shell 的一种,Linux 与 Mac OS X 都将它作为默认 shell。
- Git Bash 就是一个 shell,是 Windows 下的命令行工具,可以执行 Linux 命令;
- Git Bash 是基于 CMD 的,在 CMD 的基础上增添一些新的命令与功能;
- 所以建议在使用的时候,用 Bash 更加方便;
- Git CMD
- 命令行提示符(CMD)是 Windows 操作系统上的命令行解释程序;
- 当你在 Windows 上安装 git 并且习惯使用命令行时,可以使用 cmd 来运行 git 命令;
- Git GUI
- 基本上针对那些不喜欢黑屏(即命令行)编码的人;
- 它提供了一个图形用户界面来运行 git 命令;
Git 配置
Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量:
- /etc/gitconfig 文件:包含系统上每一个用户及他们仓库的通用配置
- 如果在执行 git config 时带上 --system 选项,那么它就会读写该文件中的配置变量;
- 由于它是系统配置文件,因此你需要管理员或超级用户权限来修改它。(开发中通常不修改)
- ~/.gitconfig 或 C/用户/用户名/.gitconfig 文件:只针对当前用户
- 你可以传递 --global 选项让 Git 读写此文件,这会对你系统上 所有 的仓库生效;
- 当前使用仓库的 Git 目录中的 config 文件(即 .git/config):针对该仓库
- 你可以传递 --local 选项让 Git 强制读写此文件,虽然默认情况下用的就是它;
安装Git后,要做的第一件事就是设置你的用户名和邮件地址。
- 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改;
- 如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息;
查看当前配置信息:git config --list
。