版本控制工具Git

在这里插入图片描述

1.版本控制概述

版本控制:维护工程蓝图的一种做法,即,记录从项目立项到销毁,所有文件的更新迭代过程


2.版本控制系统(软件)分类

版本控制系统分两种:

  • 集中式版本控制系统:统一集中管理控制,只有集中式服务器,如SVN
  • 分布式版本控制系统:每一个个体都可作为服务器,并且有伪集中式服务器,如Git

集中式版本控制系统优势

①管理方便,逻辑明确,操作简单

②易于管理,集中式服务器更能保证安全性

③代码一致性非常高

④有良好的目录级权限控制系统

劣势

①对服务器性能要求高,数据库容量经常暴增,体量大

②必须联网。如果不能连接到服务器上,基本上不可以工作,如果服务器不能连接上,就不能提交,还原,对比等等

③不适合开源开发

④分支的管控方式不灵活

分布式版本控制系统优势:

适合分布式开发,每一个个体都可以作为服务器

②公共服务器压力和数据量较小

③速度快、灵活,分支之间可以任意切换

④容易的解决代码冲突

离线工作,不影响本地代码编写

3.分布式版本控制之分支概述

Git 的分支模型称为它的必杀技,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。

那什么是分支呢?分支就是同一项目所在的不同独立环境,也就是说,一个项目有多个分支同一项目的开发者A有一个或多个分支,开发者B同样有一个或多个分支,这些分支合并之后就是一个另一个分支

而分支又有一个主分支和一个或多个子分支,项目在开发过程中,主分支负责集成所有子分支的开发细节。


4.Git的工作流程

Git的处理流程涉及Workspace工作区Index/Stage暂存区Repository版本库/本地仓库Remote远程仓库四大核心区域。

  • Workspace工作区:存放项目代码的地方(一般不在idea或其他开发工具的workspace中建立,而是新建一个文件夹)
  • Index/Stage暂存区:一个文件,用于临时存放项目改动的内容和信息(也即工作区add的数据)
  • Repository版本库:一个文件夹(.git文件夹),存放了所有版本的数据(也即暂存区commit的数据)
  • Remote远程仓库:托管代码的服务器(如公司的一个集成项目)

大致流程:

工作区— git add—> 暂存区 —git commit—> 版本库 —git push—> 远程仓库

远程仓库 —git pull—>版本库


2、Git的基本命令
git status  //查看版本库状态

git log  //查看提交到版本库的日志
git log --pretty=online  //查看提交到版本库的日志(更养眼的信息行)
日志参数说明
	commit:版本号/id(全球唯一)
	Author:提交者(用户名和邮箱,后面说明)
	Date:提交时间
	
git diff  //查看未add到暂存区的版本差异

git reset --hard HEAD^  //将工作区、暂存取和HEAD保持一致,即版本回退至最新commit的版本,一个^代表上一个,n个就是前n个
git reset --hard 版本号/id  //回退到指定版本(版本号唯一标识代表版本)
//版本回退可以理解为“时光倒流”,回到某之前版本之后,其后的所有版本都将消失(log中会清除这些记录),想撤回的话,如果命令框还没关,可以找到想要回去的版本号/id回到该版本(卡“时间倒流”),如果命令框关了还是有办法撤回的,详见百度

git rm 文件名  //删除本地文件。同时会导致工作区和版本库不一致,需要继续执行git commit操作保持一致

git add 文件名  //将工作区的某个文件提交到暂存区
git add .  //将整个工作区文件提交到暂存区(除.gitignore文件中声明排除的文件外)

git commit [-m "我提交啦"]  //将暂存区的数据提交到版本库,-m备注

//后面介绍与远程仓库的交互

3、分支管理和命令介绍
1.分支管理概述

分支的目的在于备份项目,同时给不同开发人员独立完成且能合并项目提供条件和环境。


2.分支命令
git branch  //查看所有分支

git branch 分支名  //创建子分支

git checkout 分支名  //切换分支,前面已经说到,同一个项目,不同分支下内容是不同的

git merge 分支名  //将某个分支合并到当前分支,注意:当前当前当前当前

git branch -d 分支名  //删除分支(千万不要删除master主分支)

关于项目开发中分支的具体作用详见:https://blog.csdn.net/Dr_Chen_996/article/details/108412595?spm=1001.2014.3001.5502


4、Gitee(码云)-基于 Git 的代码托管和研发协作平台

在平台注册之后可以新建仓库(一个项目就是一个仓库)之后,就可以在本地使用git命令把我们的项目发布到自己的仓库啦

注意:在对自己的项目操作的时候最好也进行复制备份

提交本地项目到远程仓库流程

git config --global user.name "对应码云的用户名"
git config --global user.email "对应码云的邮箱"
git init //项目初始化,在当前(项目.idea同级位置)创建版本库(版本库就是.git文件夹,当前是工作区,里面有个index文件就是暂存区)

git add .  //将项目提交到暂存区,排除.gitignore声明的文件,因为项目中如.idea、.classpath、.settings这些文件是没必要提交的

git commit [-m "提交了xx项目"]

git remote add orgin 远程仓库路径  //配置远程仓库请求路径,记得要有这个仓库

git push -u orgin 分支名  //将版本库(即最新的项目版本)提交到远程仓库,提交的时候会对应分支,即提交本地master主分支就会提交到远程仓库的master主分支,开发中测试没bug之后再提交到主分支

//弹出一个框, 输入码云(即登录邮箱)账号与密码

5、idea使用Gitee开发
1.开发步骤

①先从远程仓库Clone(第一次都是克隆,之后pull即可)项目到idea(界面Get from Version Control,或者工具栏的VCS点击)

②从master checkout切换(ideapull项目之后右下角提示)到子分支(避免直接在master上操作),

③在子分支操作完之后需要提交则右击项目Git,add、commit(或VCS操作)提交到版本库

④如果只提交到远程仓库的子分支则直接右击项目Git,push(或VCS操作)到远程仓库子分支

⑤如果要提交到远程仓库主分支上,需要checkout切换回master主分支,并且将操作的子分支merge合并到主分支上,然后右击项目Git,push(或VCS操作)到远程仓库主分支

注意:

  • 提交到远程仓库时必须保证最后一次操作是commit到了版本库
  • 提交到远程仓库时不要选择.idea和.yml等文件,只需要提交更改过、新增、删除等操作过的对象

2.代码冲突

对项目进行push、pull和分支合并的过程免不了遇到代码冲突问题。

idea提供冲突界面解决框,对于冲突位置:

  • 只使用自己的版本
  • 只使用对方版本
  • merge合并

一般解决冲突后测试没问题了才commit到远程主分支。而如果当前合并者遇到bug,一般只能回退到上一个没有bug的版本或者只能自己解决冲突。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥肥肥柯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值