起源
Git是目前世界上最先进的分布式版本控制系统。林纳斯-托瓦兹在开发linux系统时有很多人想有一个平台进行版本控制。当时同类型的版本控制软件是BitKeeper,bitKeep是不开源的。当林纳斯团队无法免费使用它时, 林纳斯花费了一个月左右时间就开发出了Git。
功能
- 版本记录:对问题进行历史追查
 - 协同开发:允许多个人或团队在同一个项目上协调工作,解决协调协作中的冲突。
 - 代码备份:多个位置存储代码的版本
 - 版本还原
 - 文档和注释
 
早期svn缺点
- 版本需要自行备份
 - 不适合程序员在开发过程中做小版本的管理
 - 没有分支功能,无法实现开发和维护两条线独立维护
 - 不适合管理分布在世界各地,互不认识的大型开发团队
 
Git的优点
- 本地有版本信息,容灾能力强,远程平台连不上也没关系
 - 分支和合并
 - 平台支持,允许不同团队之间提交需求和进行交流协作
 
Git操作
git init建立本地仓库,一个项目一个仓库- 用户配置:用户名和邮箱
git config user.name "zhangsan"git config user.email "zhangsan@163.com",工作时使用企业邮箱
 - 配置全局签名邮箱,全局需要存放在C:\Users\主机名.gitconfig
- git config --global user.name "zhangsan"
 - git config --global user.email "zhangsan@163.com"
 
 git status查看状态,列出所有没有提交的文件信息git add提交代码到暂存区,建议不要提交目录,制定清楚文件名- git rm --cached 文件路径+文件名, 从暂存区中删除
 git commit将暂存区代码提交到本地仓库,进入注释vim,可以使用-m"注释"不进入vimgit log查看版本库, 如果显式不全,使用空格翻页,q退出git log --pretty=oneline一页显式所有版本
git reset --hard HEAD^还原到上一个版本git reset --hard HEAD~2向前移动两个版本git reset --hard 特定的7位版本号,跳转到指定的版本中
git reflog查看本地的操作日志,第一列是版本号的前7位git checkout --文件名:如果对文件进行修改后,想还原为最后一次提交的版本。

分支管理
- git branch -v: 查看当前有哪些分支
 - git branch dev: 命名一个新的分支,dev是分支名称
 - git checkout dev : 切换到新的分支
 - git merge dev: 站在某个功能少的分支(master)去拉取功能多的分支
 - git branch -d 分支名称: 删除分支
 - 分支冲突:查看冲突文件,按照逻辑手动修改合并,删除冲突标记,重新提交冲突文件
- vim 冲突文件
 - 手动修改冲突
 - git commit -m"解决冲突"
 
 
gitee远程平台使用
- git remote add origin 远程IP
 - git push origin master, 向origin推送master分支
- permission deny
- pull request: 向外部团队申请修改代码
 - 管理员给组内成员添加开发权限
 
 
 - permission deny
 - git clone IP 从远程平台下载git仓库,下载全量
 - git pull 更新增量代码