项目一系列-第2章 Git版本控制
第2章 Git版本控制
2.1 Git概述
Git是什么?Git是一个分布式版本控制工具,于管理开发过程中的文件。
Git有哪些作用?
- 远程备份:Git可以将本地代码备份到远程服务器,防止数据丢失。
- 多人协作:Git运行多个开发者在同一个代码库协同工作。开发者可以共享代码、合并变更、解决冲突等。
- 代码回溯:Git可以返回之前的代码版本。用于修复错误和恢复代码。
- 版本切换:Git可以切换分支或者不同的提交切换代码版本。
2.2 Git环境准备
1、安装Git
2、进行全局配置
3、配置SSH公钥
4、建立本地仓库及远程仓库
安装Git怎么做?
下载地址:https://git-scm.com/download/win
全局配置要几步?
1、设置用户信息(必须配置,用于远程连接)
git config --global user.name "ychenchen"
git config --global user.email "ycc@itcast.cn"
2、查看配置信息
git config --list
3、初始化本地仓库及远程仓库
git init
配置SSH公钥要几步?
1、生成SSH公钥
-
ssh-keygen -t rsa
-
不断回车
-
如果公钥已经存在,则自动覆盖
2、获取公钥
cat ~/.ssh/id_rsa.pub
3、到Gitee中设置SSH公钥
4、验证是否配置成功
ssh -T git@gitee.com
2.3 Git常用命令
常见命令主要分为三大类:
- 本地仓库命令
- 远程仓库命令
- 分支命令
本地仓库命令:
# 初始化本地仓库
git init
# 将所有文件提交到暂存区
git add .
# 将暂存区文件提交到本地仓库
git commit -m"第一次提交所有文件到本地仓库"
# 将暂存区文件取消暂存
git reset
# 查看详细的提交日志
git log
# 查看简洁的提交日志
git reflog
# 切换到指定版本
git reset --hard [version]
远程仓库命令:
# 添加关联的远程仓库
git remote add <shortname> <url>
# 查看关联的远程仓库
git remote [-v]
# 提交本地仓库代码到远程仓库
git push origin master
# --set-upstream 建立起和远端分支的关联,后续可省分支名和远端名
git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名] ]
# 克隆远程仓库到本地
git clone <url>
# 拉取最新的远程仓库
git pull <shortname> <branch>
# fatal: refusing to merge unrelated histories
git pull --allow-unrelated-histories
分支命令:
# 列出所有本地分支
git branch
# 列出所有远程分支
git branch -r
# 列出所有本地分支和远程分支
git branch -a
# 创建分支
git branch <branchName>
# 切换分支
git checkout <branchName>
git checkout -b <branchName> # 创建并切换分支
# 合并分支:在当前分支合并其他分支
git merge <branchName>
# 删除分支
git branch -d b1 # 删除分支时,需要做各种检查
git branch -D b1 # 不做任何检查,强制删除
2.3.1 分支创建规则
以下是一些常见的Git分支创建规则:
1、主分支(master)
主分支用于项目的发布和部署,只有稳定的代码才能被合并到master分支。
在master
分支上,每一个tag标记一个线上版本。
2、开发分支(develop/dev)
开发分支包含项目的最新代码,但功能都在从该分支独立出来的特性分支中开发。
通常命名为develop
或dev
。
3、特性分支(feature)
特性分支用于开发特定的功能,每个新功能都应在从develop
分支创建的feature/xxx
形式的特性分支上进行开发和测试。
4、预发布分支(release)
预发布分支用于准备发布新版本,进行最后的测试和调整,从 develop
分支创建以确保代码稳定,命名格式为release/xxx
,其中xxx是具体的版本号。
测试过程中若存在bug需要修复,则直接由开发者在release分支修复并提交。
测试完成之后,将 release 分支合并到 master 和 develop 分支,此时 master 为最新代码,用作上线。
5、修复分支(hotfix/bugfix)
修复分支用于解决线上紧急bug或修复已知问题,从 master 分支创建以确保修复代码直接应用于稳定版本,命名格式为hotfix/xxx
或bugfix/xxx
。
完成bug修复后将代码合并到master分支和develop分支,合并完成后可以删除该分支。
长期稳定存在的分支只有 master 和 develop 分支,别的分支在完成对应的使命之后都会合并到这两个分支然后被删除。
简单总结如下:
分支 | 作用 |
---|---|
master | 线上稳定版本分支 |
develop | 衍生出 feature 分支和 release 分支 |
feature | 完成特定功能开发的分支,存在多个,功能合并之后删除 |
release | 准备待发布版本的分支,存在多个,版本发布之后删除 |
hotfix | 紧急热修复分支,存在多个,紧急版本发布之后删除 |
分支示意图如下:
2.3.2 解决冲突
下面是在命令行常见的解决冲突步骤:
- 使用
git status
命令查看哪些文件存在冲突。 - 使用
git diff
命令查看冲突文件的差异。 - 手动解决冲突,并验证解决后是否正确。
- 使用
git add
标记为冲突已解决。 - 使用
git commit
命令提交解决冲突后的更改。
2.4 忽略文件
.gitignore忽略文件:忽略项目代码中不需要的文件,一般是编译文件、临时文件等,把它们纳入版本控制系统中毫无意义。
存放在项目的根目录。
.gitignore内容:
.git
logs
rebel.xml
target/
!.mvn/wrapper/maven-wrapper.jar
log.path_IS_UNDEFINED
.DS_Store
offline_user.md
*.class### IntelliJ IDEA ###
.idea
*.iws
*.ipr
2.5 IDEA集成Git
2.5.1 在IDEA中配置Git
在idea的settings面板中,【Version Control】=>【Git】
- 指定Git安装路径【Path to Git executable】
2.5.2 IDEA中的操作方法
本地仓库操作:
1、初始化本地仓库【Create Git Repository】
- 依次选择菜单【Version control】—【Create Git Repository】
- 选择当前项目根目录,点击【OK】
2、克隆远程仓库【Clone】
- 在IDEA的菜单栏中选择Git,再点击【Get from Version Control】或者【Clone】
- 在弹出的【Clone Repository】窗口中输入远程仓库的URL地址和对应的本地仓库存放目录,点击【Clone】按钮进行仓库克隆操作
3、将文件加入到暂存区
- 右键文件或项目,选择【Git】,选择【Add】
- 文件变成绿色即为成功
4、将暂存区文件提交到版本库
- 右键文件或项目,选择【Git】,选择【Commit …】
- 提交本次的日志信息
- 文件变成黑色即为成功
5、查看日志
- 右键文件或项目,选择【Git】,选择【Show History】
- 展示了提交的日志列表信息即为成功
远程仓库操作:
1、查看远程仓库和添加远程仓库
- 右键项目,找到【Git】–>【Manage Remotes…】
- 在弹出的框中可以查看已经关联的远程仓库,如果没有,则可以点击"+"号来新增远程仓库
2、推送至远程仓库
- 在当前分支中,点击【Push…】
- 在弹出的【Push Commits】窗口中可以看到本次推送的文件,点击【Push】按钮即可
3、从远程仓库拉取代码
- 在当前分支中,点击【Update Project…】
分支操作:
1、查看分支
- 在【Version control】查看即可
- 书签标记代表当前使用分支
2、创建分支
- 分支窗口中点击【New Branch】,弹出输入分支名称,点击Create按钮,完成分支的创建
3、切换分支
- 点击要切换的分支,选择【Checkout】
4、推送分支
- 点击当前分支,选择【Push…】
5、合并分支
- 点击要切换的分支,选择【Merge】
6、解决冲突
- 推荐点击【Merge…】
- 有三个框,根据实际情况合并