git特点:
1)分布式 2)存储快照而非差异 3)本地有完全的版本库,几乎所有操作都在本地 4)有内在的一致性,SHA1 5)优秀的分支管理 6)支持各种协同模式 7)开源,有一些第三方软件可整合使用,几乎所有操作都是 与CVS/SVN,Git 的优势 1)支持离线开发,离线Repository(仓库) 2)强大的分支功能,适合多个独立开发者协作 3)速度快
git的常用命令小结:
由git +(以下参数)组合 config 全局配置参数相关 init 创建一个新的git版本库或初始化一个已存在的版本库(生产中慎重操作已存在的版本库) add 添加文件内容至仓库索引 diff 显示提交之间,提交和工作区之间的差异 status 显示工作区状态 commit 记录变更(提交)到版本库(注意:需先add再commit,git才会跟踪记录) log 显示提交日志(可以看到commit_id等信息 --pretty=oneline过滤掉无用信息) reflog 简要显示提交日志(简单的commit_id信息) reset 重置当前HEAD到指定状态(HEAD^ 为回滚至上一次版本) rm 从工作区和索引中删除文件 checkout 检出一个分支或路径到工作区 branch 列出,创建或删除分支 clone 克隆一个版本库到一个新目录 bisect 通过二分法查找定位引入bug 的变更 fetch 从另外一个版本库下载对象和引用 merge 合并2个或多个开发历史 rebase 本地提交转移至更新后的上游分支中 mv 移动或重命名一个文件,目录或符号链接 pull 获取并合并另外的版本库或一个本地分支 push 更新远程引用和相关的对象 show 显示各种类型的对象 tag 创建,列出,删除或校验一个GPG签名的tag对象 grep 输出和模式匹配的行
git中的工作区(working dir),提交区/暂存区(stage/index),版本库(repository)的概念和联系
git工作流:
git 实际操作图解:
当你执行commit后,暂存区的内容就没有了
git 回滚原理图: