GIT版本控制【松思园】

声明:博客知识内容多来源于网络“狂神说java”的视频教程,记录此博客仅用于学习交流。

一、GIT和SVN对比

GIT 和 SVN 最大的区别就在于: SVN是分布式的,因此他支持离线工作,在本地可以进行很多的操作,它是把内容按元数据方式存储; GIT是集中式的,它是按文件进行存储的,必须联网才能进行正常工作,并且GIT支持分支工作。目前版本控制分为三大类:

  • 本地版本控制:是将文件的个版本存到本地,无法解决多人协作的问题;
  • 集中式版本控制:相对于本地版本控制,只是多了一个中央服务器,通过控制开发人员的权限进行管理,缺点是只要中央服务器一旦损坏,损失将不可估量;
  • 分布式版本控制:系统保存的不是文件各个变化的差,而是整个文件的快照,当从中央服务器拷贝下来代码时,拷贝的是一个完整的版本库,这样即使一台机器损坏,也能通过其他拷贝的机器找到完整的备份。
SVNGIT
优点管理方便,逻辑简单,易上手;代码一致性较高;集中式服务器更能保证安全性;适合少量人数开发的项目适合分布式开发;服务器压力较小;项目管理较为灵活;较容易解决开发者之间的冲突;支持离线工作
缺点服务器压力较大;必须要连接服务器才能提交还原等操作;不适合大型项目开源类项目的开发概念较多,学习周期较长;代码的安全性较差,如果把整个库克隆下来就可以完全公开所有代码和版本信息

二、GIT 的各种状态

我们在本地创建的git项目,都会有一个隐藏文件 .git 。该文件意味着这个目录就是本地参仓库,如果按照文件的存放位置,他有四个区域:

  • 工作区:就是受 GIT 控制的文件夹,所有被跟踪记录的文件都在这个里面,方代码的地方;
  • 暂存区:临时保存改动的缓存区;
  • 仓库区(本地库):就是安全存放数据的位置,这里面有自己提交的所有版本的数据。其中HEAD指向最新放入仓库的版本
  • 远程的git库:托管代码的服务器。

按照文件的状态分:

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

在这里插入图片描述

三、GIT 的工作流程及命令

git status		--查看所有文件的状态
git status [文件名]			--查看指定文件的状态
git init		--初始化项目,会成成 .git 隐藏文件;
git clone [url]		--克隆远程仓库到本地;
git add .	--将没有被跟踪的文件,添加到暂存中,被跟踪[ideal文件为绿色]
git reset HEAD .	--移除文件的暂存状态,变为为跟踪文件[ideal文件为红色]
git commit -m [提交的信息]	--	提交暂存区文件,到本地仓库中[ideal文件为白色]

git branch	--列出所有本地的分支
git branch -r	--列出所有远程的分支
git branch [newbranchname]	--新建一个分支(本地),默认是当前分支的基础上
git checkout -b [newbranchname]	--新建一个分支,并切换到该分支
git checkout -b [newbranchname] [oldbranchname]	--根据已有分支创建新的分支
git checkout [branchname]	--切换到该分支
git merge [branchname] --no-ff -m [提交的信息]	--合并指定分支到当前分支
git push origin [branchname]:[branchname]	--推送本地的branchname分支(冒号前面的)到远程origin的branchname分支(冒号后面的),没有会自动创建
git branch -d [branchname]	--删除指定分支(本地)
git push origin --delete [branchname]	--删除指定分支(远程)

git log --查看操作日志(详细)
git log --oneline	--查看操作日志(简略版)
git log --oneline --graph	--查看操作日志(看到各分支版本)

0.要存放项目的路径下,右键运行 GIT Bash Here,克隆项目 git clone
1.在工作目录中添加、修改文件;
2.将需要进行版本管理的文件放入暂存区域 git add . ;
3.将暂存区域的文件提交到 git 仓库 (本地库) git commit;
4.将本地仓库推送到远程仓库 git push ;

四、GIT 分支

分支的功能就是将一些开发从主线上分离出来,可以实现分支的并行开发,这样能解决代码的冲突,系统的代码也可以按照版本多样的存在。

git常用分支及含义:
常用分支:
master 分支:主分支,版本非常的稳定,一般不允许在上面工作,需要保证随时都能发布。
develop 分支:开发分支,工作完成后,如果要发布正式版,或者是比较稳定可以合并到主分支上去。
临时性分支:
临时性分支使用完以后,应该删除,使得代码库的常设分支始终只有 master 和 develop
feature 分支:功能分支,开发特定的功能,开发完成后合并到 develop 分支上,可以采用feature-*的形式命名
fixbug 分支:修补bug分支,对于发布的软件初心的bug,新建一个分支进行修复,是从Master分支上面分出来的。修补结束以后,再合并进Master和Develop分支。它的命名,可以采用fixbug-*的形式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值