• hand_git


    Git

    工作区域

    在这里插入图片描述

    使用流程

    • 一般流程:开始开发之前,需要先git fetch,把最新的内容拉取到本地;然后git merge,把内容合并到当前修改;然后进行开发,完成后执行git add .,将修改添加到暂存区;然后git commit 将修改提交到版本管理;最后git push推送给远程仓库,供其他人拉取使用。

    在这里插入图片描述

    基本命令

    创建本地仓库

    # 在当前目录新建一个Git代码库
    $ git init
    
    • 1
    • 2

    克隆远程仓库

    # 克隆一个项目和它的整个代码历史(版本信息)
    $ git clone [url]
    
    • 1
    • 2

    文件状态

    #查看指定文件状态
    git status [filename]
    
    #查看所有文件状态
    git status
    
    • 1
    • 2
    • 3
    • 4
    • 5

    提交文件

    git add .                 # 添加所有文件到暂存区,“.”代表全部
    git commit -m "消息内容"   # 提交暂存区中的内容到本地仓库 -m 提交信息
    
    • 1
    • 2

    提交忽略

    • 使用.gitignore文件配置
    #为注释
    *.txt        #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
    !lib.txt     #但lib.txt除外
    /temp        #仅忽略项目根目录下的TODO文件,不包括其它目录temp
    build/       #忽略build/目录下的所有文件
    doc/*.txt    #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
    doc/**/*.p	 #**表示嵌套路径,即doc下的多层路径。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    免密码登录

    • 绑定用户名和邮箱
    git config --global user.name 'xxx' //设置用户名
    git config --global user.email 'xxx@gmail.com' //设置邮箱
    
    • 1
    • 2
    • 生成公钥
    # 进入 C:\Users\Administrator\.ssh 目录
    # 生成公钥
    ssh-keygen			# 普通版
    ssh-keygen -t rsa 	# 加密版
    ssh-keygen -t rsa -b 2048 -C "" # 2048-bit RSA版
    
    • 1
    • 2
    • 3
    • 4
    • 5

    分支操作

    • git最强大的功能就是分支。git在提交时,提交的其实是个提交对象,而这个对象包含着指向父提交对象的指针。而实际分支的原理,就是个可变指针,指向某个提交对象,在操作分支时,其实就是操作的指针。
    • 分支合并后,会形成一个新的提交,指向之前的两个合并分支。有时候合并并不能由git自动完成,会存在冲突
      解决:合并分支的时候,如果两个分支修改了同一部分内容,那可能就会有冲突。需要我们自己手动解决冲突
      后,再提交。
    # 列出所有本地分支
    git branch
    
    # 列出所有远程分支
    git branch -r
    
    # 新建一个分支,但依然停留在当前分支
    git branch [branch-name]
    
    # 新建一个分支,并切换到该分支
    git checkout -b [branch]
    
    # 合并指定分支到当前分支
    $ git merge [branch]
    
    # 删除分支
    $ git branch -d [branch-name]
    
    # 删除远程分支
    $ git push origin --delete [branch-name]
    $ git branch -dr [remote/branch]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    规范要求

    分支命名规范

    • master:主分支,可用稳定的发布版本
    • develop:开发主分支,最新的代码
    • feature-xxx:功能开发分支
    • bugfix-xxx:未发布版本的bug修复分支
    • release-xxx:预发布分支
    • hotfix-xxx:已发布版本的bug修复分支

    提交规范

    • [IMP] 提升改善正在开发或者已经实现的功能

    • [FIX] 修正BUG

    • [REF] 重构一个功能,对功能重写

    • [ADD] 添加实现新功能

    • [REM] 删除不需要的文件

    DDD

    • Domain Driven Design 领域驱动设计

    分层结构

    • 分层架构图
    img
    • 项目结构图

    在这里插入图片描述

    API层

    • 用户接口层(api):用户接口层,向外提供服务

    在这里插入图片描述

    • controller:提供资源服务,XxxController.java
    • dto:数据传输对象,XxxDTO.java,对于一些复杂页面需要多个实体组合时,可使用DTO对象来传输数据。

    APP层

    • 应用层(app):应用层,定义系统的业务功能,并指挥领域层中的领域对象实现这些功能,负责用例流程调度,事务控制。

    在这里插入图片描述

    • service:应用服务,XxxService.java,应用服务里进行事务控制,流程调度
    • service.impl:应用服务实现,XxxServiceImpl.java
    • assembler:DTO组装器,XxxAssembler.java,复杂DTO的组装,简单的直接使用Entity即可

    Domain层

    • 领域层(domain):领域层,包含领域对象和领域服务,专注核心业务。

    在这里插入图片描述

    • entity:实体对象,与表做映射,具备一些简单的自治的业务方法
    • repository:资源库接口,XxxRepository.java,提供数据资源的操作方法,如数据库增删改查、Redis增删改查等,查询操作建议写到 repository 内。
    • service:领域服务,命名一般按提供的业务功能命名,通常用于封装一个领域内的复杂业务逻辑,简单的业务逻辑在app 层完成即可,不需要领域层。
    • vo:值对象,XxxVO.java,领域内用到的数据封装,对于一些没有实体对象的数据对象但又在领域中用到,使用值对象封装

    Infra层

    • 基础设施层(infra):基础设施层,提供数据持久化、防腐层实现、第三方库、消息等,为整个业务系统提供基础的服务。

    在这里插入图片描述

    • constant:常量
    • mapper:Mapper接口,XxxMapper.java
    • repository.impl:资源库实现,XxxRepositoryImpl.java,业务一定不要侵入到这里
    • util:工具
  • 相关阅读:
    Android攻城狮学鸿蒙 -- 点击事件
    SpringMVC 06 乱码问题解决和JSON
    啊哈,一道有趣的Go并发题
    5.5-6.2读书笔记
    3.1-3.2LFU&LRU算法
    2023 收入最高的十大编程语言
    期末Java题库--判断题之错误篇2
    洛谷 P1281 书的复制(二分答案 输出方案)
    pyqt5:openpyxl 读取 Excel文件,显示在 QTableWidget 中
    C++容器string的运用和注意
  • 原文地址:https://blog.csdn.net/langkeyring/article/details/126001000