Git版本管理
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
目录
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
一、Git简介
1.1 项目的版本管理
在项目开发过程中,项目没开发到一个节点就会对当前项目进行备份,这个备份就是项目的一个版本。若继续开发开发一个阶段之后,再次进行备份,就会生成新的版本-多个版本的集合就是项目的版本库。
在项目版本管理中,可以使用手动进行管理,但是存在一些问题:
- 需手动维护版本的更新日志,记录每个版本的变化;
- 需手动查找历史版本,当历史版本比较多时,查找工作很繁琐;
- 若需回退到某个版本时,只能手动通过IDE工具手动打开;
1.2 团队协同开发
如今的项目,规模越来越大,功能越来越多,需要有一个团队进行开发。如果有多个开发人员共同开发一个项目,如何进行协作的呢。Git提供了一个非常好的解决方案 ---- 多人协作开发。
1.3 版本管理工具-Git
Git是一个开源的分布式版本控制系统,用于敏捷高效的处理任何带大小项目的版本管理。
核心功能:
- 项目的版本管理;
- 团队协同开发;
二、Git下载及安装
2.1 下载Git
2.2 安装Git
按照提示安装即可,傻瓜式安装!
2.3 测试
cmd输入命令:git --version
三、原理及结构
四、Git基本使用
4.1 创建版本库
- 在工作空间的目录中,右键“Git Bash Here”
- 输入git init指令,创建版本库(就是一个.git目录)
4.2 查看版本库状态
git status
4.3 将工作空间的修改add添加到暂存区
git add a.txt 表示只将工作空间中的某个文件add到暂存区
git add . 表示将工作空间中所有文件都add到暂存区
4.4 将暂存区内容提交到版本库(仓库)
git commit -m '版本说明'
4.5 查看版本库中的历史版本
git log --oneline # oneline表示每个版本信息只显示一行
get log # 显示每个版本的详细信息
4.6 设置用户信息
将暂存区的内容提交到版本时,会记录当前版本提交的用户信息,因此在版本提交之前需先绑定用户的信息。
git config --global user.name '名字'
git config --global user.email '邮箱'
4.7 同步历史版本到工作空间
换言之,将工作空间同步到哪个版本!这样工作空间的项目就会更新!其中Head表示当前的版本。
git checkout 版本号
五、远程仓库
5.1 远程仓库简介
5.2 获取远程仓库
使用GitLab搭建私服
远程仓库提供商
1)GitHub https://github.com
2)Gitee(码云) https://gitee.com
3)Coding
5.3 创建远程仓库(码云)
- 注册账号
- 创建远程仓库
https://gitee.com/xsbcai/java2022.githttps://gitee.com/xsbcai/java2022.git
- 远程仓库管理(添加开发人员)
六、远程仓库操作
6.1 准备工作
1)创建本地工作空间
C:\Users\admin\MyProject\Git\XiaoChen
src
main
java
resources
test
java
pom.xml
2)初始化本地仓库
git init
3)将工作空间的项目add到暂存区
git add .
4)将暂存区文件提交到版本库,生成第一版本
git commit -m '创建项目'
5)为当前项目创建一个远程仓库
年华追梦/XiaoChenhttps://gitee.com/xsbcai/xiaochen.git
6.2 本地仓库关联远程仓库
建立C:\Users\admin\MyProject\Git\XiaoChen中的本地仓库和远程仓库的关联年华追梦/XiaoChenhttps://gitee.com/xsbcai/xiaochen.git
git remote add origin https://gitee.com/xsbcai/xiaochen.git
origin 代表给远程仓库取的别名
6.3 查看远程仓库状态
git remote -v
6.4 将本地仓库push到远程仓库
git push origin main/master
- main/master是根据Git Bash右端显示,origin代表仓库别名,别名一定要一致,push到远程仓库需要gitee的账号和密码
6.5 开发者pull远程仓库到本地
其他开发者:账号
1)先创建本地仓库
- 创建RemoteChen目录,进入此目录,打开Git客户端 ,比如C:\Users\admin\MyProject\Git\RemoteChen
- 创建本地版本库(git init)
2)拉取远程仓库到本地
- 拉取远程仓库
git pull 远程仓库地址 master/main(根据默认而定)
6.6 解决协同开发冲突问题
场景:
开发者1:小李 开发者2:小王 git pull xsbc master(main) git pull xsbc master(main) 在Hello在HelloWorld.java新增内容“bbb” 在Hello在HelloWorld.java新增内容“aaa” git add .
git commit -m ''
git push xsbc master
git add .
git commit -m ''
git push xsbc master【会失败!】
原因分析:
- 在小李pull之后,push之前被其他开发人员push过
如何解决?
- git pull xsbc master 【将小王修改的内容拉取到小李本地】,此时HelloWorld.java
<<<<<<< HEAD aaa ======= bbb >>>>>>> c17dc45c80272240fb02467d9be937238b6efb2b
- 对文件进行冲突合并
- git add .
- git commit -m ''
- git push xsbc master
七、分支管理
7.1 何为分支
分支就是版本库中记录版本位置(支线),分支之间项目会影响,使用分支可以对项目起到保护作用;
分支就是一条时间线,每次提交就在这条时间线上形成一个版本;
7.2 分支特性
- 创建一个新的版本库,默认创建一个主分支(master/main分支)
- 每个分支可以进行单独管理(常规分支、保护分支、只读分支)
- 分支是可以合并的
7.3 分支操作
查看分支:git branch
创建分支:git branch branch_name
切换分支:git checkout branch_name
剪出分支(创建一个新分支并切换到此分支):git checkout 项目版本 -b branch_name
合并分支:git merge branch_name(将branch_name合并到当前分支上)
删除本地分支:git branch -d localBranchName
删除远程分支:git push origin(远程仓库名称) --delete remoteBranchName(分支名字)
八、IDEA整合Git使用
作为Java开发工程师,代码的编写工作都是在IDEA工具中完成。
8.1 IDEA关联Git
8.2 IDEA中Git版本管理
准备工作:打开IDEA使用springboot新建一个web工程
1. 创建本地版本库
2. 设置忽略文件
在工作空间中有些文件是不需要记录到版本库中,例如.idea、target、.iml文件,可以通过设置忽略提交来实现。
- 在工作空间的根目录(项目的根目录)中创建一个名为.gitignore文件;
- 在.gitignore文件配置忽略过滤文件;
3. 将工作空间add到暂存区
选择项目/某个文件-右键-Git-Add;注意:添加到暂存区的文件-绿色
若一个文件创建好还没添加到暂存区-棕红色
添加到暂存区的操作可以设置默认添加,如下;
4. 将暂存区提交到版本库
- 选择项目/文件-右键-Git-CommitDirectory;注意:添加到版本库的文件-黑色
- 若对记录到版本库的文件进行修改,换言之工作空间和版本库不一致-蓝色
8.3 IDEA中Git分支管理
1. 创建分支
- 点击IDEA右下角Git;
- 在弹窗中点击New Branch;
- 输入新分支的名称;
2. 切换分支
点击IDEA右下角Git;
点击非当前分支右边的星号;
在选项卡点击‘checkout’;
3. 删除分支
4. 合并分支
例如:将dev分支合并到main
- 切换到main分支;
- 点击dev分支右边的箭头,在展开菜单中点击‘Merge into Current’;
8.4 IDEA中使用Git进行团队协同开发
1. 项目管理者
1)完成项目搭建
2)为当前项目创建本地版本库
3)将搭建好的项目提交到本地版本库
- add到暂存区
- commit到版本库
4)创建远程版本库(远程仓库)
https://gitee.com/xsbcai/git-jd.githttps://gitee.com/xsbcai/git-jd.git
- 管理-添加开发者
5)将本地仓库push到远程仓库(main分支-main分支)
6)在远程仓库checkout新建本地dev分支(mian/master分支需进行保护)
- 虽然选择是在远程仓库创建分支dev,但在本地会创建一个dev分支,那如何解决远程仓库了?
7)将本地dev分支push到远程仓库,新建远程仓库的dev分支
继续push本地dev到远程dev
8)设置远程仓库中main(master)为保护分支
2. 项目开发者
1)从管理员提供的远程仓库pull项目
https://gitee.com/xsbcai/git-jd.githttps://gitee.com/xsbcai/git-jd.git
2)打开项目(此时本地工作空间的项目和远程仓库是同步的)
3)开发步骤:
- 选择要修改的文件或目录-右键-Git-pull
- 进行修改操作
- 测试本地修改
- add到暂存区
- commit到本地版本库
- push到远程仓库(dev)
8.5 解决团队协同开发冲突问题
冲突:在pull之后,push之前被其他开发者push成功,出现push失败?
解决方法:
- 选择产生冲突的文件-右键-Git-pull
- 弹出窗口提示:accept yours|accept theirs|Merge
1)accept yours:保留自己的版本(提交时会覆盖其他开发者代码)
2)accept theirs:保留远程仓库上的版本(会导致自己修改代码丢失)
3)Merge:手动合并(和其他开发者沟通合并方案)
完结!
更多推荐
所有评论(0)