1. Git 简介:一款 开源 的 分布式 的 版本管理 工具。
* Logos:
* Git发音
* Git起源
CVS — SVN — Git
BitKeeper: 分布式版本管理工具(收费,闭源)(2002~2005)BitMover公司
*
始作俑者: *samba的作者Andrew Trigell (2005)
作者: Linux Torvalds(2005 Linux之父)
* 特点
- 速度
- 简单的设计
- 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
- 完全分布式
- 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
* Git 与 GitHub
GitHub: 基于Git(技术工具)搭建的一个服务托管(各种Git仓库)平台。
2.基本使用(指令)
* 初始化本地仓库
git init
* 查看帮助
**git help** <需要查看的命令>
* 配置信息
**git config “user.name”** caijinzhu
**`git config “user.email”** xiuce@naitang.com`
* 配置.gitignore文件
(https://github.com/github/gitignore)
* 查看配置信息
git config -l
* 设置别名
**git config alias.cm “commit -m”**
* 添加修改
**git add **修改的文件
// 添加一个文件
**git add .**
// 添加当前目录下所有改动的文件
* 提交改动
**git commit -m** “提交的说明”
* 修改提交的信息
**git commit --amend -m “新的commit信息"**
写好Git commit 的七个建议(http://blog.jobbole.com/92713/):
1.限制标题字数在 50 个字符内
2.用大写字母写标题行
3.用一个空行隔开标题和正文
4.不要用句号结束标题行
5.在标题行使用祈使语气
6.正文在 72 个字符处换行
7.使用正文解释是什么和为什么,而不是如何做
* 查看log
**git log**
**
// 更好看的log
**git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)\<%an\>%Creset' --abbrev-commit" **
* 查看所有操作记录
git reflog
* 查看状态
git status
* 版本回退
**git reset --hard HEAD^**
// 回退到上一个版本
* 撤销对文件的修改
**git checkout -- \<file\>**
// checkout命令用于从历史提交(或者暂存区域)中拷贝文件到工作目录,也可用于切换分支
3.Git 工作原理
Git 用以计算校验和的机制叫做 SHA-1 散列(hash,哈希)。这是一个由 40 个十六进制字符(0-9 和 a-f)组成字符串,基于 Git 中文件的内容或目录结构计算出来。
24b9da6552252987aa493b52f8696cd6d3b00373
Git三种状态:
已提交(committed):已提交表示数据已经安全的保存在本地数据库中。 // 本地仓库
已修改(modified):已修改表示修改了文件,但还没保存到数据库中。 // 工作目录
已暂存(staged):已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。// 暂存区域
4. Git 分支和工作流
资料地址:https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow
核心分支:
演进分支:
* 添加标签
**git tag -a v2.1.2 -m “version 2.1.2”**
* 提交标签到远程仓库
// 提交指定的标签
**git push origin v2.1.2**
// 提交所有新的标签
**git push orging --tags**
* 操作分支
// 新建分支
** git branch 新分支的名称**
// 切换到分支
**git checkout 要切换到的分支名称**
// 新建并切换至新分支
``**git checkout -b newBrachName**
// 合并分支
**git merge 要合并的分支名称**
// 查看分支
**git branch**
// 删除分支
**git push origin :远程分支名称**
**git branch -d 本地分支名称**
* 切换到tag标记的版本
** git checkout tagName**
5.Git 参考资料
- 官方文档( http://git-scm.com/book/zh/v2 )
- 伯乐在线(http://blog.jobbole.com/tag/git/)
- Getting Git Right(https://www.atlassian.com/git/)
- Pro Git [《Pro Git》中文版.pdf](百度网盘分享链接:http://pan.baidu.com/s/1bxHBmY)