Git操作复习

git基础操作

本地仓库,工作区,暂存区,远程仓库

git add . 添加本地工作区内容到暂存区

git commit 将暂存区内容提交到本地仓库

git push origin master 将本地仓库推送到远程的master分支

git 查看历史记录的方式

git log

会显示每次提交的详细日志信息

git log --pretty=oneline

只显示精简的记录,每条日志一行

git log --oneline

精简记录格式,每个一行,哈希码也会缩短

git reflog

显示不同的日志序号

git 版本前进回退

常用命令

基于索引值操作[推荐]

git reset --hard [局部索引值]

使用^符号:只能后退

git reset --hard HEAD^

注:一个^表示后退一步,n 个表示后退 n 步

使用~符号:只能后退

git reset --hard HEAD~n

注:表示后退 n 步

版本回退也可以用于恢复删除的文件

reset 命令的三个参数对比

–soft 参数

仅仅在本地库移动 HEAD 指针

–mixed 参数

在本地库移动 HEAD 指针、重置暂存区

–hard 参数

在本地库移动 HEAD 指针、重置暂存区、重置工作区

恢复删除的文件

如果删除的文件已经提交了,可以通过版本回退进行找回如果

如果删除的文件没有提交,只是保存到了暂存区,那么可以用HEAD指针进行找回。

比较文件差异

git diff [文件名] 将工作区中的文件和暂存区进行比较

git diff [本地库中历史版本] [文件名] 将工作区中的文件和本地库历史记录比较

git diff 不带文件名会比较多个文件

分支合并和冲突解决

当在两个不同的分支分别修改了同一行文件并且进行了提交,当进行合并的时候,就会发生冲突,此时就会进入手动提交的阶段,需要手动选择留下哪些修改。

第一步:编辑文件,删除特殊符号

第二步:把文件修改到满意的程度,保存退出

第三步:git add [文件名]

第四步:git commit -m “日志信息”

注意:此时 commit 一定不能带具体文件名

历史版本保存机制

SVN是增量式的保存机制,每个版本只保存变化的部分。以文件变更列表的方式存储信息。这类系统将它们保存的信息看作是一组基本 文件和每个文件随时间逐步累积的差异。

Git 把数据看作是小型文件系统的一组快照。每次提交更新时 Git 都会对当前的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。所以 Git 的 工作方式可以称之为快照流。

Git具体保存格式

每次提交都有一个提交对象,包含了提交对象所在的tree,提交日志,作者签名等,tree对象包含多个blob块,parent指明父对象

提交对象和其父对象形成一个链条

在提交对象链表的基础上,创建分支和切换分支都只是生成新的指针和移动指针,因此速度很快。

gitflow工作流

主干分支 master

主要负责管理正在运行的生产环境代码。永远保持与正在运行的生产环境 完全一致。

开发分支 develop

主要负责管理正在开发过程中的代码。一般情况下应该是最新的代码。

bug 修理分支 hotfix

主要负责管理生产环境下出现的紧急修复的代码。 从主干分支分出,修 理完毕并测试上线后,并回主干分支。并回后,视情况可以删除该分支。

准生产分支(预发布分支) release

较大的版本上线前,会从开发分支中分出准生产分支,进行最后阶段的集 成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后 可以视情况删除。

功能分支 feature

为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支 中独立出来。 开发完成后会合并到开发分支。

gitlab

gitlab可以让我们自己安装一个版本控制的服务器,通常是作为一个局域网内的版本控制,具体操作和GitHub的操作类似。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值