一 GIT体系概述
GIT是企业开发过程中必不可少的版本管理系统。
还有另外一个比较热门的同样开源免费的版本管理工具SVN,比起GIT,SVN唯一的优势也就是操作简单了,其他方面都是被碾压的状态。
1、存储方式
GIT把内容按元数据方式存储类似k/v数据库,而SVN是按文件(新版svn已改成元数据存储)
2、使用方式
从本地把文件推送远程服务,GIT需要从最开始的工作区add到local cache(暂存区)、然后再commit到local repository(本地仓库)、最后push到remote git repository(远程git仓库)三个步骤。 而SVN只需要commint一步到位
SVN基本使用过程:
GIT基本使用过程:
GIT操作复杂的背后,换来的是强大的功能,如能直接在本地建立版本库,不用连网也能正常工作;强大的分支功能等等。
3、版本管理模式
git 是一个分布式的版本管理系统(我觉得是强大的核心原因),而要SVN是一个远程集中式的管理系统
集中式:
分布式:
二 GIT 核心命令使用
本地初始化GIT 仓库
#基于远程仓库克隆至本地
git clone <remote_url>
#当前目录初始化为git 本地仓库
git init <directory>
本地添加
#添加指定文件至暂存区
git add <fileName>
#添加指定目录至暂存区
git add <directory>
#添加所有
git add -A
#将指定目录及子目录移除出暂存区
git rm --cached target -r
#添加勿略配置文件 .gitignore
本地提交
#提交至本地仓库
git commit file -m '提交评论'
#快捷提交至本地仓库
git commit -am '快添加与提交'
分支管理
#查看当前分支
git branch [-avv]
#基于当前分支新建分支
git branch <branch name>
#基于提交新建分支
git branch <branch name> <commit id>
git branch -d {dev}
#切换分支
git checkout <branch name>
#合并分支
git merge <merge target>
#解决冲突,如果因冲突导致自动合并失败,此时 status 为mergeing 状态.
#需要手动修改后重新提交(commit)
远程仓库管理
#查看远程配置
git remote [-v]
#添加远程地址
git remote add origin http:xxx.xxx
#删除远程地址
git remote remove origin
#上传新分支至远程
git push --set-upstream origin master
#将本地分支与远程建立关联
git branch --track --set-upstream-to=origin/test test
tag 管理
#查看当前
git tag
#创建分支
git tag <tag name> <branch name>
#删除分支
git tag -d <tag name>
日志管理
#查看当前分支下所有提交日志
git log
#查看当前分支下所有提交日志
git log {branch}
#单行显示日志
git log --oneline
#比较两个版本的区别
git log master..experiment
#以图表的方式显示提交合并网络
git log --pretty=format:'%h %s' --graph