Git简介
版本控制的发展
多年来版本控制系统的标准做法是集中化的版本控制系统(诸如 CVS),有一个单一的集中管理的服务器,保存所有文件的修订版本,协同工作的人们通过客户端连接到服务器进行文件的更新操作。这样做的缺点是如果中央服务器出现单点故障,那么就会出现数据丢失的风险。
于是分布式的版本控制系统面世了。在这类系统中,客户端并不只是提取最新版本的文件快照,而是把代码仓库完整镜像下来。每一次的提取操作,实际上都是一次对代码仓库的完整备份。 Git 就是典型的分布式版本控制系统。
和其他版本控制系统的比较
- 直接记录快照,而非差异比较
- 近乎所有操作都是本地执行,绝大多数操作只需要访问本地文件和资源
- 时刻保持数据完整性, Git 使用 SHA-1 算法计算数据的校验和
- 多数操作仅添加数据,提交快照后不用担心丢失数据
- 文件有三种状态,已提交(committed),已修改(modified)和已暂存(staged)
基本工作流程
- 在工作目录中修改某些文件。
- 对修改后的文件进行快照,然后保存到暂存区域。
- 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。
Git安装
MacOS X 10.10 安装的 Git 版本为 1.9.3.
1 | $ git --version |
Git简单命令
使用前的配置
1 | $ git config --global user.name "bx awesome" |
查看配置信息
1 | $ git config --list |
从现有仓库克隆
1 | $ git clone [url] |
查看当前文件状态
1 | $ git status |
跟踪新文件
1 | $ git add README |
已缓存状态的文件显示在Changes to be committed
这行下面
查看忽略文件
1 | $ cat .gitignore |
查看已暂存和未暂存的更新
1 | $ git diff |
提交更新
1 | $ git commit |
-m
参数后跟提交说明
跳过使用暂存区域
1 | $ git commit -a |
移除文件
1 | $ git rm |
查看日志
1 | $ git log |
-p
按补丁格式显示每个更新之间的差异--stat
显示每次更新的文件修改统计信息--shortstat
只显示—stat中最后的行数修改添加移除统计--name-only
仅在提交信息后显示已修改的文件清单--name-status
显示新增、修改、删除的文件清单--abbrev-commit
仅显示 SHA-1 的前几个字符,而非所有的 40 个字符--relative-date
使用较短的相对时间显示(比如,“2 weeks ago”)--graph
显示 ASCII 图形表示的分支合并历史--pretty
使用其他格式显示历史提交信息,可用的选项包括 oneline , short , full , fuller 和 format (后跟指定格式)
从远程仓库抓取数据
1 | $ git fetch [remote-name] |
该命令只抓取数据而不合并本地分支
推送数据到远程仓库
1 | $ git push origin master |
查看远程仓库信息
1 | $ git remote show origin |
Github 博客更新
查看当前状态
1
$ git status
跟踪更新的内容
1
$ git add .
提交更新
1
$ git commit -m"xxx"
推送更新到 Github
1
$ git push origin master