git 极简讲解
1. git是什么
- git是一个带版本的文件系统
- git对于文件有跟踪和不跟踪2种状态,跟踪,则会对这个文件的数据进行版本记录(当然需要进行commit,然后push之类主动操作)。不跟踪,则不会对文件做版本跟踪和记录。
2. git架构
3. git关键概念
- 仓库(repository),git相比subversion也就是SVN的一大革新就是增加了一个本地仓库。
没错,maven也是一样的套路,这样带来好处就是不用时时刻刻跟远端git服务器连接,也可以对代码做版本提交。相当于本地也有一个git服务器一样,仓库有远端仓库和本地仓库,remote repository和local repository - 分支,git是有分支这个概念的,这个主要是为了方便团队协作和版本发布。一般企业开发是develop、test、preProduction、production这样四个阶段,开发,测试,预发布,发布四个阶段。对应的git一般也是三个或者四个分支,开发分支,测试分支,正式分支,有些公司会增加一个预发布分支。默认远端仓库一般就是一个分支,origin/master分支。后续可以人为建立其他分支
- git操作命令
- git init,初始化
- add 将文件纳入git版本管理
- branch 分支
- pull 拉取远端代码到本地仓库(注意有对应分支)
- push,将本地仓库代码推送到远端仓库(注意有对应分支)
- commit,提交文件到本地仓库。注意这里很多公司会有commit规范,主要针对描述信息格式的。如
feat: 本次代码涉及,主要是特性开发
fix:本次代码开发,主要是bug修复
docs:本次代码开发,主要是文档处理
style:本次代码开发,主要是代码风格处理
refactor:本次代码开发,主要是重构
test:本次代码开发,主要是测试
chore:本次代码开发,比较琐碎的事务
- merge合并,这里有分支合并,以及代码不同版本合并
- 分支合并,就是2个不同分支,在各自的某个版本进行合并,会生成一个新的版本节点。注意,合并需要确认一个临时主体分支和被合并分支,例如A,B分支合并,以A为主,就是将B分支中某个节点版本代码合并到A分支中来,这时候A分支中代码就是结合了A以及B分支的代码
- 版本合并,同一个分支中,不同版本之间合并,很多时候会有冲突。常见于团队协作开发,如用户小王,用户小李,基于某个git仓库的同一个分支A,都拉取了本地分支A‘进行开发,但开发进度和提交版本不同。当都把小王先把代码推动到远端,小李再想推送时,需要先把小王的代码拉下来,解决可能存在的冲突之后,才能继续推送到远端。
4. 常见使用方式
- 命令行
- IDE中种种插件
- 图形化客户端,如windows下小乌龟,git官方客户端;mac下的sourcetree等等