# git简介
- git不仅仅是一个版本控制工具,也是一个内容管理系统,工作管理系统
- 现在公司项目开发中,基本上都是用的git来管理团队写的代码。当然也有用svn、cvs的(不如git多)
# git与svn的区别
- git是分布式的,而svn不是的 git和svn一样都有自己的集中式版本库或服务器。但是git更倾向于被使用于分布式模式,每个开发人员从中心的版本库check out代码后会在自己的机器上克隆一份本地的版本库。
- git把内容按元数据方式存储,而svn是按文件存储 git把版本库的元信息隐藏在.git文件夹中,svn隐藏在.svn文件夹中。他们差距很大,.git目录拥有中心版本库上的所有东西,如标签,分支,版本记录等。
- git没有一个全局版本号,而SVN有 这是目前文职svn相比git缺少的一个最大的特性。svn的版本号实际上是一个相应时间的源代码快照,git里面是什么特征与之对应暂不清楚。
- git的内容完整性要优于svn git的内容存储使用的SHA-1哈希算法。确保代码内容的完整性。
- git分支和svn分支不同 分支在svn中一点都不特别,就是版本库中的另外一个目录。 处理git的分支相当简单和有趣,可以快速的在几个分支间切换。
# git常用工具
GitBash、EGit、SourceTree。 gitbash应该是使用最多的,知道有这几个工具就行了,好好玩下gitbash就好。
##git常用命令汇总
- 帮助
git --help
查看帮助(忘了命令就敲它吧) - 创建
git clone http://user@domain.com/repo.git
克隆(复制)一个已存在的库git init
在本地创建一个库 - 本地修改
git status
显示工作路径下已修改的文件git diff
显示与上次提交版本文件的不同 - 提交与发布
git add
把当前所有修改添加到下次提交中git commit -m 'description'
提交并附带说明 - 分支管理
git branch
列出所有的分支git checkout <branch>
切换到某个分支 - 合并与重置
git merge <branch>
将分支合并到当前HEAD中git rebase <branch>
将当前HEAD版本重置到分支中git rebase --abort
退出重置 - 查看历史
git log
显示所有的提交记录git log --author="username"
显示某个用户的所有提交