Git代码管理

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. 课外阅读

 

Git代码管理

上一篇:openstack制作动态扩容根分区镜像


下一篇:650. 只有两个键的键盘