团队使用GIT有些时间了,也遇到一些问题:
- 遇到大量冲突,解决完之后,没有修改的代码也变成蓝色了,如果不push,代码将会丢失
- 代码丢失(具体情况,我暂时记不清了)
- git push失败
- 分支的管理不够清晰等等
说白了,git还是没玩转, 于是决定重新学习一下GIT。
一、工作模型
- 主工程师搭好项目框架 ,并提交代码到本地仓库
- 在公司服务器创建一个远程仓库,并将1的提交推送到远程仓库
- 其他人把远程仓库所有内容克隆到本地,拥有了各自的本地仓库,开始并行开发
- 每个人独立负责一个功能,可以把每一个小改动提交到本地(由于本地提交无需立即上传到远程仓库,所以每一步提交不必是一个完整功能,而可以是功能中的一个步骤或块)
- 功能开发完毕,将和这个功能相关的所有提交从本地推送到远程仓库
- 每次当有人把新的提交推送到远程仓库的时候,其他人就可以选择把这些提交同步到自己的机器上,并把它们和自己的本地代码合并
二、git原理
1.基本概念
- 工作区:就是你在电脑里能看到的目录
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的本地版本库,你的所有版本信息都会存在这里
- 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)
2.工作流程图
git push:用本地仓库的commit记录去覆盖远程仓库的commit记录,而如果在远程仓库含有本地没有的commit的时候,push (如果成功)将会导致远端的commit被擦掉。这种结果当然是不可行的,因此 Git 会在 push 的时候进行检查,如果出现这样的情况,push 就会失败
gitflow 分支
Master分支存储正式发布的历史
Develop 分支作为功能的收集分支
常见操作:
1.文件有变化时,如何查看文件前后变化
- IDEA软件中
可以直观地看到改变,命令也是可以用的哈
绿色,已经加入控制暂未提交
红色,未加入版本控制
蓝色,加入,已提交,有改动
白色,加入,已提交,无改动
灰色:版本控制已忽略文件。
- VSC软件中
优秀的博客收集:
图解git原理与日常实用指南 - 个人文章 - SegmentFault 思否