在Git中,分支是项目的不同版本,当开始开发一个新项目时,主分支通常是master分支。随着项目的进展,你可能需要开发新的功能或修复bug,在这些情况下,你可以创建一个新的分支,以便在不影响主分支的情况下进行开发。
master
:用于版本的更新,当比较大的功能开发完成或者更新之后会有一次集体的发版,就会将所有的代码都合到master
(有的公司也会用release
分支发版,原理都是一样)dev
:一般是开发测试分支,在项目发版上线之前都会现在dev
分支上统一进行测试,确保功能达标没有bug
之后再推到master
分支feature
分支:用来做分模块功能开发,建议命名为feature-xxx-time
(也可能是其它命名方式,或者以_
分割等等),模块完成之后,会合并到 dev
分支;hotfix
分支:是用来做线上的紧急bug
修复的分支,建议命名为hotfix-xxx-time
。当线上某个版本出现了问题,将检出对应版本的代码,创建hotfix
分支,问题修复后,合并回dev
和master
,这里注意,合并到master
的时候,一般要打上修复后的版本标签示例:git branch feature-bulitProject-20230609
feat
:代表本次提交代码中包含了新增功能fix
:BUG
和问题修复refactor
:代码重构,如方法改名、变量移动、包变更等,对应IDEA
中Refactor
(重构)操作docs
:Git
仓库中的文档相关更新style
:代码格式修改,如缩进和空格调整test
:测试代码的调整chore
:部署脚本、构建工具、依赖管理调整revert
:撤销之前提交的特殊说明示例:git commit fix:修复xxx方法中数据转换异常问题
Workspace
:工作区。就是你平时存放项目代码的地方Index/Stage
:暂存区。用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息Repository
:仓库区(或版本库)。就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD
指向最新放入仓库的版本Remote
:远程仓库。托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换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
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选项
- 查看本地用户信息
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'
// 修改登陆密码
创建分支
切换分支
合并分支
回滚分支
解决冲突
解决上图中的冲突方案如下:一般选择Merge
1. Accept Yours
:代表以自己的为准
2. Accept Theris
:代表以更新下来的文件为准
3. Merge
:代表手动合并