git 高级操作

文件压缩
一个文件很大时,每一次做很小的改动,执行add之后都会产生一个新的commit,导致objects会很大,而且重复。执行git gc可以对其进行压缩处理,产生的文件存放与objects/pack中
git verify-pack -v .git/objects/pack/pack-xxxxx.pack 查看压缩文件所包含的原始文件
文件解压
git unpack-objects < .git/xxxxxxxx.pack 这里的pack文件必须移除到.git/objects/pack目录之外才能进行解压

清理垃圾
git fsck(fill system check) 查看悬空的,没有被引用的blob对象,也就是垃圾对象
git prune -n 也可以用来查看垃圾对象
git prune 清理垃圾对象

清除由于删除分支遗留的objects
git -c gc.reflogExpire=0 -c gc.reflogExpireUnreachable=0 -c gc.rerereresolved=0 -c gc.rerereunresolved=0 -c.pruneExpire=now gc "$@"
场景:彻底从代码仓库中删除某些信息,比如敏感信息,密码等

如何不提交代码切换到其他分支?
git stash方式:
首先执行git add *
git stash 将代码暂时保存起来,可以同时对多个分支进行暂时存储
切换到其他分支完成开发之后回到当前分支执行git stash pop可以恢复到之前的状态
git stash show 查看当前分支暂时存储的内容
tea-app-oceanus/src/app.ts | 1 +
1 file changed, 1 insertion(+)

git stash list 查看所有具有暂时存储的分支list
stash@{0}: WIP on master: a88a5624 fix: 修复 deploy 执行异常
stash@{1}: WIP on v5.2.0: fb98f6b2 feat: 调整合并后的代码

git worktree方式:
git worktree add ../文件夹名称 分支名
通过git worktree list 可以查看当前的所有worktree list
现在我们可以自由切换到不同的tree进行工作,需要在新创建的目录中重新下载包。
本质上就是将原有的文件夹复制一份,并指定到特定的分支。
删除tree: git worktree remove 文件夹名称(项目目录的名称,不管执行add时文件夹路径嵌套有多深)

git commit --amend方式(修正方式):
先执行git add /git commit 操作
切换到其他分支完成修改,回到开始分支,再次进行修改提交时执行git commit --amend 覆盖上一次提交,提交信息不能修改。
当你在修补最后的提交时,与其说是修复旧提交,倒不如说是完全用一个 新的提交 替换旧的提交, 理解这一点非常重要。从效果上来说,就像是旧有的提交从未存在过一样,它并不会出现在仓库的历史中

2 声望
2 粉丝
0 条评论
推荐阅读
正则原理剖析
回溯法也称试探法,它的基本思想是:从问题的某一种状态(初始状态)出发,搜索从这种状态出发所能达到的所有“状态”,当一条路走到“尽头”的时候(不能再前进),再后退一步或若干步,从另一种可能“状态”出发,继...

闲人阅读 557

git 常用命令 记录
有错误和改进的地方望留言,谢谢 : )顺便推荐一下,git入门教程Git 教程图解 GitPro Git 2(中文版)Git 使用Git 使用规范流程Git 工作流程Commit message 和 Change log 编写指南全局设置git config --system //...

Luff阅读 3.2k

git/pip/easy_install/apt代理/源设置
在公司内网环境中,访问公网往往需要经过公司的代理,对于浏览器、IDE等开发工具,都提供了设置代理的配置,而git、pip、easy_install等CLI工具,则需要通过命令或配置文件进行代理设置;对于Python、Ubuntu、Mav...

乘着风1阅读 5.5k

低代码开发重要工具:jvs-logic(逻辑引擎)2.1.6版本功能清单
逻辑引擎是一种能够处理逻辑表达式的程序,它能够根据用户输入的表达式计算出表达式的值。在实际应用中,逻辑引擎通常被用于处理规则引擎、决策系统、业务规则配置等领域,具有广泛的应用前景。前面几期我们了解...

软件部长2阅读 422

被吐槽 GitHub仓 库太大,直接 600M 瘦身到 6M,这下舒服了
忙里偷闲学习了点技术写了点demo代码,打算提交到我那 2000Star 的Github仓库上,居然发现有5个Issues,最近的一条日期已经是2022/8/1了,以前我还真没留意过这些,我这人懒得很,本地代码提交成功基本就不管了。

程序员小富2阅读 1.4k评论 1

书写友好的提交信息
其中开头部分表明了本次提交的类型(是添加功能还是修复错误等),范围则描述了修改的影响面,然后是一段简要的描述,更多详细的信息则可以在正文中进行描述。

Kisstar阅读 3k

Coding 官方推出网站服务状态页面啦!
第一部分是系统运行状态。如下图,提示所有系统的运行状态,如 Coding 网站访问状态, Git 服务,QC 服务和 Paas 服务等:第二部分是系统指标。System Metrics 两个图表示的分别是 Coding 官方网站的实时响应时间...

CODING阅读 2.8k

2 声望
2 粉丝
宣传栏