Git代码管理
课程介绍
- 抽取公共代码
- Git代码管理;(掌握)
- 远程仓库搭建(码云,github);(掌握)
1. 抽取
对于系统的公共部分进行抽取。
抽取domain
@Data public class BaseDomain { private Long id; } |
抽取mapper
public interface BaseMapper { //基础查询 void save(T d); void remove(Long id); void update(T d); T loadById(Long id ); List loadAll(); //分页查询 //查询总条数 Long queryCount(BaseQuery query); //查询当前的页数 List queryData(BaseQuery query); }
|
抽取服务接口:
package cn.itsource.basic.service; import cn.itsource.basic.query.BaseQuery; import cn.itsource.basic.util.PageList; import java.io.Serializable; import java.util.List;
public interface IBaseService { //添加一个对象 void add(T t);
//删除一个对象 void del(Serializable id);
//更新一个对象 void update(T t);
//通过id获取一个对象 T getById(Serializable id);
//获取所有对象 List getAll();
//分页查询 PageList queryData(BaseQuery query); }
|
抽取服务实现:
//不需要加@Service,子类继承时添加 //类级别事务为读事务,分别在增删改的方法上面加写事务 @Transactional(readOnly = true,propagation = Propagation.SUPPORTS) public class BaseServiceImpl implements IBaseService {
@Autowired private BaseMapper baseMapper;
//@Transactional(readOnly = false,propagation = Propagation.REQUIRED) @Transactional @Override public void add(T t) { baseMapper.save(t); // int i = 1/0; }
@Transactional @Override public void del(Serializable id) { baseMapper.remove(id); } @Transactional @Override public void update(T t) { baseMapper.update(t); }
@Override public T getById(Serializable id) { return baseMapper.loadById(id); }
@Override public List getAll() { return baseMapper.loadAll(); }
@Override public PageList queryData(BaseQuery query) { Long count = baseMapper.queryCount(query); if (count==null || count.intValue()<1) return new PageList<>(); List data = baseMapper.queryData(query); return new PageList<>(count,data); } }
|
2.Git代码管理
-
简介
- 是什么
Linus的第二个伟大作品。2005年由于BitKeeper软件公司对Linux社区停止了免费使用权。Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了
一个分布式版本控制工具,是由Linux的作者Linus开发的。
- 哪些人在使用
目前使用Git作为版本控制的开源软件:
Linux kernel,Android, jQuery, Ruby on Rails,Debian… ,github,码云
- Git pk SVN
1)版本库本地化,支持离线提交,相对独立不影响协同开发。每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。
2)更少的“仓库污染”。git对于每个工程只会产生一个.git目录,这个工程所有的版本控制信息都在这个目录中,不会像老版本SVN那样在每个目录下都产生.svn目录。
把内容按元数据方式存储,完整克隆版本库。所有版本信息位于.git目录中,它是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签、分支、版本记录等。
3)支持快速切换分支方便合并,比较合并性能好。在同一目录下即可切换不同的分支,方便合并,且合并文件速度比SVN快。
4)分布式版本库,无单点故障,内容完整性好。
5)国外开源项目基本使用git
-
Git安装及命令操作
- 安装
- Git交互流程图
- 共享版本库-项目经理或者CMO
1)创建仓库目录
2)进入目录
3)进入git bash界面-右键
4) 仓库初始化
git init --bare shared.git
仓库路径 E:/openSource/git/repository/shared.git/ .
仓库文件目录
HEAD:指向当前分支的一个提交
description:项目的描述信息
config:项目的配置信息
info/:里面有一个exclude文件,指定本项目要忽略的文件
objects/:Git对象库(commit,tree,blob,tag)
refs/:标识着你的每个分支指向哪个提交
hooks/:默认的hook脚本
- Git用户操作-开发人员
见Git基本命令
- 工作区&暂存区
-
Git图形界面客户端TortoiseGit操作
- 安装并汉化
略过, 安装完成后,需要重启电脑。
- Git共享仓库创建
- Git用户操作
2.3.3.1 基本操作
按图操作即可
2.3.3.2 冲突
更新(pull)--手动解决冲突-告诉已解决(resove)--本地提交--push
- Git集成Idea操作
在idea开发了代码,直接在idea中提交,需要idea git插件,插件默认是安装了的,只需要做配置就OK。
- idea配置Git
- 简单使用
1)搭建共享仓库-项目经理
管理员通过toroiseGit建立一个仓库
项目经理上传初始化代码
- 开发人员导入项目-idea
-
Git远程共享仓库
- 为什么需要
- 方案选择
2.5.1.1自己搭建
Gitlab等,局域网操作
2.5.1.2别人搭建好的(采纳)
GitHub,码云gitee等,互联网操作
- gitee操作
注册
2.5.3.1项目初始化-项目经理
建库/删库
初始化项目
和本地共享库一样,clone 拷贝 上传提交
2.5.3.2 开发人员操作-idea操作
其他操作和本地一个吊样.
2. 项目仓库搭建
2.1. 后台仓库
项目经理:创建仓库-初始化提交-忽略target
开发人员:idea导入进行开发
2.2. 前台仓库
项目经理:创建仓库-初始化提交
开发人员:idea导入进行开发
3. 课程总结
3.1. 重点
3.2. 难点
3.3. 如何掌握
3.4. 排错技巧(技巧)
4. 常见问题
5. 课后练习
1.完成表t_shop的CRUD (非常重要)
6. 面试题
7. 扩展知识或课外阅读推荐(可选)
7.1. 扩展知识
7.2. 课外阅读