Git简介和日常使用 (内部分享)

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 参考资料

  1. 官方文档( http://git-scm.com/book/zh/v2
  2. 伯乐在线(http://blog.jobbole.com/tag/git/
  3. Getting Git Right(https://www.atlassian.com/git/
  4. Pro Git [《Pro Git》中文版.pdf](百度网盘分享链接:http://pan.baidu.com/s/1bxHBmY