Progit学习笔记:起步
版本控制
集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS),例如CVS、Subversion 以及Perforce。
优势:
- 每个人都可以在一定程度上看到项目中的其他人正在做些什么;
- 管理员也可以轻松掌控每个开发者的权限,并且管理一个 CVCS 要远比在各个客户端 上维护本地数据库来得轻松容易。
劣势:
- 中央服务器的单点故障,无法协同工作;
- 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。
分布式版本控制系统(Distributed Version Control System,简称 DVCS), 例如Git、Mercurial、Bazaar 以及 Darcs 等。
优势:
- 每一次的克隆操作,实际上都是一次对代码仓库的完整备份,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。
Git是什么
-
直接记录快照,而非差异比较
-
近乎所有操作都是本地执行
-
GIt保存完整性
-
Git一般只添加数据
-
三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged),三个阶段:工作区、暂存区以及 Git 目录
如果 Git 目录中保存着特定版本的文件,就属于已提交状态。 如果文件已修改并放入暂存区,就属于已暂存状 态。 如果自上次检出后,作了修改但还没有放到暂存区域,就是已修改状态。
使用Git前的配置
-
/etc/gitconfig
文件: 包含系统上每一个用户及他们仓库的通用配置。 -
~/.gitconfig
或~/.config/git/config
文件:只针对当前用户。 -
当前使用仓库的 Git 目录中的
config
文件(即.git/config
):针对该仓库。每一个级别会覆盖上一级别的配置,所以
.git/config
的配置变量会覆盖/etc/gitconfig
中的配置变量。
查看所有的配置以及它们所在的文件
$ git config --list --show-origin
设置用户名和邮件地址
$ git config --global user.name "user"
$ git config --global user.email user@example.com
设置文本编辑器
$ git config --global core.editor emacs
Windows系统设置文本编辑器
$ git config --global core.editor "'C:/ProgramFiles/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
检查配置信息
$ git config --list
# git config <key> 检查某一项配置
$ git config user.name
获取帮助
$ git help <verb>
$ git <verb> --help
快速参考
$ git <verb> -h
# 例如
$ git add -h