什么是“版本控制”?
版本控制就是一种记录一个或若文件内容变化,以便来查阅特定版本修订情况的系统。
版本控制系统(VCS)带来的好处
可已将选定的文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态, 可以比较文件细节的变化,查出是谁最后修改了那个地方,从而可以找出导致问题的原因。 就算你把整个项目中的文件改的改删的删,照样可以轻松恢复到之前的样子。
版本控制系统分类
Git(吉特)是一个分布式版本控制软件
命名来源:
Git简史:
Git的安装,我们已经专门录制了视频,这里强调首次配置。
• git remote [-v]:查看你已经配置的远程仓库服务器
• git remote add :添加远程仓库
• git remote rename :远程仓库重命名
• git remote remove :移除远程仓库
• git remote show :查看某个远程仓库
• git fetch :从远程仓库中抓取,不影响工作目录
• git pull :从远程仓库中拉取到工作目录
• –allow-unrelated-histories:
• git push :推送到远程仓库
• git clone :克隆项目
• 使用标签功能来标记发布结点(v1.0 、v2.0)
• git tag
• 标签分类
• 轻量标签(lightweight):本质上是将提交校验和存储到一个文件中,没有保存任何其他信息;
• git tag <标签名>
• 附注标签(annotated):是存储在Git数据库中的一个完整对象,它们是可以被校验的。
• git tag -a <标签名> -m <附注描述信息>
• 共享标签
• 默认情况下,git push命令并不会传送标签到远程仓库服务器上。
• 推送一个标签:git push origin <标签名称>
• 推送所有标签:git push origin –tags
• 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
• 在很多版本控制系统中,完全创建一个源代码目录的副本。
• Git处理分支的方式可谓是难以置信的轻量,创建新分支几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。
• Git鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。
• Git的默认分支名字是master。在多次提交操作之后,你其实已经有一个指向最后那个提交对象的master分支。
• 创建分支
• git branch
• Git怎么知道当前在哪一个分支上呢?
• 它有一个名为HEAD的特殊指针,向当前所在的本地分支
• 使用 git log 命令查看各个分支当前所指的对象
• git log –oneline –decorate
• 分支切换
• git checkout
• 分支提交
• 分支切换回master
• 可以使用 -b 参数创建并切换分支
• git checkout -b
• 接到一个bug修复任务
• 创建并切换问题分支(git checkout -b iss53)
• 修复过程提交(git commit -m message)
• 暂停bug任务,修复紧急bug
• 无需删除iss53分支
• 创建并切换新分支,如hotfix
• 提交紧急任务修复内容
• 首先切换到合并分支,如主分支
• git checkout master
• 执行分支合并命令
• git merge
• 合并冲突解决
• git status:查看冲突
• 冲突文件内容
• git mergetool:启用冲突解决工具
• git branch -v:查看每一个分支的最后一次提交。
• git branch –merged:查看已合并的分支
• git branch –no-merged:查看未合并的分支
• git branch -d :删除分支
• 如果未合并的分支将会删除失败可以使用 -D 选项来强制删除
• 根目录结构
• documents:项目相关文档文件夹
• projects:项目代码文件夹
• README.md:自读文件
• README.en.md:自读文件(英文)
• 模板参考链接:https://gitee.com/zero-awei/hello-gitee.git
• 编码规范
• 阿里巴巴Java开发手册
• Google开源项目风格指南
• 编码检查工具
• Java开发规约IDE插件
• 使用帮助:
• https://github.com/alibaba/p3c
• Cpplint
• 使用帮助:
• https://github.com/zh-google-styleguide/zh-google-styleguide