1. 前言

在Git中,分支是项目的不同版本,当开始开发一个新项目时,主分支通常是master分支。随着项目的进展,你可能需要开发新的功能或修复bug,在这些情况下,你可以创建一个新的分支,以便在不影响主分支的情况下进行开发。

2. 基础知识点

2.1. 分支区分

  • master:用于版本的更新,当比较大的功能开发完成或者更新之后会有一次集体的发版,就会将所有的代码都合到master(有的公司也会用release分支发版,原理都是一样)
  • dev:一般是开发测试分支,在项目发版上线之前都会现在dev分支上统一进行测试,确保功能达标没有bug之后再推到master分支
  • feature分支:用来做分模块功能开发,建议命名为feature-xxx-time(也可能是其它命名方式,或者以_分割等等),模块完成之后,会合并到 dev 分支;
  • hotfix分支:是用来做线上的紧急bug修复的分支,建议命名为hotfix-xxx-time。当线上某个版本出现了问题,将检出对应版本的代码,创建hotfix分支,问题修复后,合并回devmaster,这里注意,合并到master的时候,一般要打上修复后的版本标签

示例:git branch feature-bulitProject-20230609

2.2. Git 代码提交规范

  • feat:代表本次提交代码中包含了新增功能
  • fixBUG和问题修复
  • refactor:代码重构,如方法改名、变量移动、包变更等,对应IDEARefactor(重构)操作
  • docsGit仓库中的文档相关更新
  • style:代码格式修改,如缩进和空格调整
  • test:测试代码的调整
  • chore:部署脚本、构建工具、依赖管理调整
  • revert:撤销之前提交的特殊说明

示例:git commit fix:修复xxx方法中数据转换异常问题

2.3. 四个工作区域

  • Workspace:工作区。就是你平时存放项目代码的地方
  • Index/Stage:暂存区。用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  • Repository:仓库区(或版本库)。就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
  • Remote:远程仓库。托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

2.4. 文件的四种状态

在这里插入图片描述

  • Untracked:未跟踪。此文件在文件夹中,但并没有加入到git库,不参与版本控制,通过git add状态变为Staged
  • Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致,这种类型的文件有两种去处,如果它被修改, 而变为Modified,如果使用git rm移出版本库,则成为Untracked文件
  • Modified:文件已修改。仅仅是修改,并没有进行其他的操作,这个文件也有两个去处,通过git add可进入暂存staged状态,使用git checkout则丢弃修改过,返回到unmodif状态,这个git heckout即从库中取出文件,覆盖当前修改
  • Staged:暂存状态。执行git commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify状态,执行git reset HEAD filename取消暂存,文件状态为Modified

2.5. 常用命令

git init:在本地目录中初始化一个新的Git仓库
git clone:克隆(复制)远程仓库到本地
git add:将文件添加到暂存区
git commit:提交暂存区中的文件到仓库,并附带提交信息
git status:查看仓库当前状态
git diff:查看工作区与暂存区之间、暂存区与最新提交之间的文件差异
git show:显示提交记录的详细信息
git log:查看提交历史记录
git branch:列出、创建和删除分支
git checkout:切换到指定分支或恢复工作区文件
git merge:将指定分支合并到当前分支
git rebase:将当前分支的修改移到目标分支的末端
git pull:从远程仓库拉取最新修改到本地分支
git push:将本地的修改推送到远程仓库
git tag:为提交打上标签
git reset:重置当前分支到指定状态
git rm:删除文件
git revert:创建一个新的提交来撤销指定的提交
git remote:管理远程仓库
git config:配置Git选项

2.6 注重点

  • 查看本地用户信息
    • git config user.name // 获取当前登录的用户
    • git config user.email // 获取当前登录用户的邮箱
  • 修改git本地用户信息
    • git config --global user.name 'userName' // 修改登陆账号
    • git config --global user.email 'email' // 修改登陆邮箱
    • git config --global user.password 'password' // 修改登陆密码

3. IDEA分支管理

  1. 创建分支
    在这里插入图片描述
    在这里插入图片描述

  2. 切换分支
    在这里插入图片描述

  3. 合并分支
    在这里插入图片描述

  4. 回滚分支
    在这里插入图片描述

  5. 解决冲突
    在这里插入图片描述

    解决上图中的冲突方案如下:一般选择Merge
    1. Accept Yours:代表以自己的为准
    2. Accept Theris:代表以更新下来的文件为准
    3. Merge:代表手动合并

    在这里插入图片描述

4.一些IDEA中Git操作的小技巧

4.1. 隐藏/显示本地修改项

这个有点类似于Rollback+reset
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐