跳到主要内容

博客

代码人生:编织技术与生活的博客之旅

全部 (122)前端 (15)学习笔记 (14)CSS (10)工具 (7)总结 (5)AI抠图 (4)AI编辑图片 (4)git (4)下载 (4)商业项目 (3)实用小工具 (3)算法 (3)软件 (3)AI (2)GCP (2)gradle (2)jacoco (2)JavaScript (2)NodeJs (2)Python (2)SOP (2)Spring (2)Taro (2)创业 (2)在线网站 (2)在线网站,客户端 (2)定位 (2)并发 (2)日记 (2)自媒体 (2)配音 (2)面试 (2)AI助教 (1)AI检测助手,原创检测,图像AI检测,视频AI检测 (1)border图形 (1)B站视频下载, Bilibili视频下载,bilibili弹幕下载,B站动画片下载,B站电影下载,B站批量下载,B站音频下载 (1)CSS精灵图 (1)cursor (1)Excel免费提取图片 (1)Excel图片批量提取 (1)Excel提取图片 (1)Flex (1)iac (1)idea (1)iterm (1)langGraph (1)Linux (1)MAC (1)ncm格式如何转换为mp3 (1)ncm转mp3 (1)ncm转mp3格式转换器 (1)ncm转换 (1)PostgreSQL (1)pulumi (1)pycharm (1)questions (1)RAG使用交付 (1)tiktok视频下载 (1)U23国足体育赛事4K (1)vscode (1)webpack打包 (1)xd1997.com (1)体育赛事转播回看 (1)修行 (1)免费体育赛事直播 (1)免费无版权 (1)免费无版权可商用字体 (1)内家拳 (1)动力 (1)包管理工具 (1)呼吸 (1)商机助手 (1)图片处理工具,批量去水印,图片去水印,图片去物体,图片去背景, 图片加水印 (1)图片批量下载,百度图片下载,谷歌图片下载,必应图片下载,搜索引擎图片下载 (1)地球 (1)大模型 (1)字体 (1)字体网站 (1)宇宙 (1)小红书图文下载,小红书视频下载,小红书笔记下载,小红书封面下载,小红书无水印下载 (1)小红书图文笔记下载 (1)小红书封面生成 (1)小红书无水印下载 (1)小红书视频下载 (1)工作 (1)开悟 (1)微信对话截图生成,手机短信截图生成,收款账单截图生成,支付宝商品付款截图生成,支付宝截图生成 (1)抖音下载,抖音去水印,douyin下载,抖音批量下载 (1)抖音提取音频 (1)抖音视频下载 (1)抖音视频批量下载 (1)搜索 (1)搬家 (1)操作系统 (1)效率神器, PDF转图片, 图片转PDF (1)效率神器, 剪切板历史 (1)效率神器, 图标提取器,Icon提取器 (1)数据 (1)文件传输,文本传输,屏幕传输,视频实时传输 (1)文字转图片 (1)文字转语音声音网站 (1)新电脑 (1)智能助手使用交付 (1)浮动布局 (1)清单 (1)短视频下载 (1)短视频无水印下载 (1)视频分割,视频删减,视频剪辑 (1)视频转文字 (1)视频转文字,音频转文字助手 (1)网易云ncm转mp3 (1)自媒体必备 (1)自我管理 (1)英语学习技巧 (1)记录 (1)购物 (1)配音网站 (1)量化投资 (1)锻炼 (1)阅读 (1)雷军 (1)音效素材 (1)音频转文字,视频转音频,视频加水印,视频翻译 (1)

1. 房产数据

  1. 全国34万小区数据: 迅雷链接: https://pan.xunlei.com/s/VO2sxotScka0rD-GsnBFKVHRA1?pwd=7cbu 夸克链接: https://pan.quark.cn/s/3311a4a8fc54

2. 图像类型数据

https://zhuanlan.zhihu.com/p/25138563

2.1 动物图像类型数据

2.1.1 猫

数据集列表

数据集名称简介来源大小下载地址
Cat Annotation Dataset著名的猫图像标注数据集(Cat Annotation Dataset),包含 10000张 各种类型和环境下猫的图像以及相应的猫轮廓位置标注信息。1.84 Gb
Caltech-UCSD Birds200 鸟类图像数据Caltech-UCSD Birds200 是一个鸟类图片数据集,包含 200 不同种鸟类,共计 11788 张图片。http://www.vision.caltech.edu/visipedia/CUB-200-2011.html1.12 Gb
数据阅读需 1 分钟

1. 效率类

  1. 多平台电脑鼠标键盘共享软件-ShareMouse 夸克链接:https://pan.quark.cn/s/70b35fd0756f

  2. Ditto: 夸克链接:https://pan.quark.cn/s/ccc74bd58fff

  3. 小巧轻便的强大截图软件-Snipaste 夸克链接:https://pan.quark.cn/s/95f4f674136f

  4. 手写字体生成器,生成图片,支持更换书写纸背景 夸克链接:https://pan.quark.cn/s/c73f479714cf

2. 图片类

3. 软件管理类

4. 画图类

5. 视频播放,录屏类

  1. 视频播放类软件 夸克链接: https://pan.quark.cn/s/7cebd0d4f0eb 迅雷链接: https://pan.xunlei.com/s/VO2tGLE3cka0rD-GsnBFQQRKA1?pwd=gjhk

  2. 免费但强大的录屏软件 夸克: https://pan.quark.cn/s/46bcb49713df 迅雷链接: https://pan.xunlei.com/s/VO2tGTJD_J5oTZT2jFBCWJF9A1?pwd=g5k4

  3. 全网最全视频下载工具

360网盘: https://www.yunpan.com/surl_y9wW3vtbpjr 迅雷网盘: https://pan.xunlei.com/s/VO37nz5IWt7T5NttUA9U9XZfA1?pwd=euut 夸克网盘: https://pan.quark.cn/s/c468feeb2c0e

6. 文档类

7. 安全类

8. 远程控制类

  1. 手机投屏电脑软件分享 夸克网盘链接:https://pan.quark.cn/s/a85693bad063 迅雷网盘链接: https://pan.xunlei.com/s/VO32nmwFuDX174eRjbJ2tppAA1?pwd=adjj 360网盘链接: https://www.yunpan.com/surl_y9jIvRm9zrr (提取码:vttj)

9. AI

10.

11. 教育类

如果上述链接失效,请加微信免费获取最新连接: laifeizhouma https://github.com/Genymobile/scrcpy https://www.cnblogs.com/xzqyun/p/17475142.html https://blog.csdn.net/m0_74194910/article/details/136539127 https://www.cnblogs.com/karkash/p/16250852.html

软件阅读需 1 分钟

如果你是一个规规矩矩上班的人,你可能不会遇到这个问题,但是如果你希望突破自己,那你一定会遇到各种问题。

因为你突破了自己的舒适区,就需要有所代价。

下面开始我的分享:

最近希望尝试各个方向来扩展我们的外包业务,但是现在的互联网要求非常严格,备案,或者要求公司等资质,就导致了我们很多客户无法

举个例子,想做个论坛类小程序,做小程序或许几万甚至大几千就搞定了,但是希望上线的时候,就会遇到各种问题。

首先小程序需要选择类目,但是论坛类类目是不对个人开放的,此时就有客户无所适从了,因为客户有时候是个人或者公司,但是公司没有开通对公账户()

搜索开悟阅读需 1 分钟

我经常习惯性的不想学习,不想写代码,不想写博客,不想写教程,不想出课,即使我知道这是对的,但是就是做不到。

好在我还有一个特点是,我知道在哪里去找能量,我知道当我不想做什么正确的事的时候,就是我能量不够的时候。因此我需要给自己充电,正如你们来到程序员充电站充电一样。

我去哪里找能量充电呢?

读书,看 B 站上激励人的良师的分享:

罗翔老师

宁老师

等等

这些良师,经常会分享人生处于低谷时期该怎么做,在没有动力的是该怎么做,

所有人都是被管束才有成就

自由一定是有限的自由

越能体现人类尊严的快乐,越是一种最大的快乐,有很多快乐,只是放纵的快乐,降低了人性的尊严。

越能体验人类尊严的快乐,越是一种高级的快乐

看了这些良师益友的苦口劝说,我基本都能振作起来,继续前行,希望你也能找到属于你自己的充电方式。

动力阅读需 2 分钟

最近三天没有游泳了,每天的运动都是下午 3 点 45分和团队小伙伴一起简单的锻炼 10分钟,这种有效果,但是对于我这种两天不大强度锻炼的人来说根本不够。所以在这里记下三天不锻炼的感受,以减少拖延症。

身体感受

全身比较僵硬,没有活力,特别是腰背步,非常想躺下

锻炼工作记录阅读需 1 分钟

客户需求

1. 行政应用

这些应用文和公文都在中小学校的日常管理和教学工作中发挥着重要作用,规范了学校事务的沟通和操作。

  • 会议纪要: 记录会议内容和决议的重要文档,‌帮助参会人员回顾会议内容,‌明确工作任务和责任。‌
  • 请假申请:‌用于向上级领导请假并说明请假事由和请假时间。‌
  • 报销申请:‌向财务部门申请报销各类费用的文档。‌
  • 文件传真:‌快速传递文件和信息的沟通工具。‌
  • 安全管理制度:‌包括学校行政方面安全管理制度、‌学校消防安全管理制度、‌学校周边环境安全治理制度等,‌确保校园安全。‌
  • 学籍管理:‌负责学籍信息收集、‌汇总、‌校验、‌上报等工作,‌应用学籍系统开展日常学籍管理工作,‌确保学生学籍信息的真实、‌准确、‌完整。‌

这些文档不仅规范了中小学的日常行政管理流程,‌提高了工作效率,‌还保证了工作的准确性和可靠性,‌是中小学行政管理不可或缺的工具

中小学校范围内应用文和公文种类繁多,涵盖了各种日常管理、教育教学、学生事务等方面。以下是一些常见的应用文和公文类型:

1.1 应用文

1.通知:用于发布学校的各类信息,如放假安排、家长会通知等。 2.通告:告知全校师生某些重要事项,如安全通告、禁烟通告等。 3.请假条:学生或教师因事请假时使用。 4.借条:用于借用学校财产或图书馆借书时的凭据。 5.感谢信:用于向老师、家长或合作单位表示感谢。 6.检讨书:学生因违反纪律或规章制度写的自我反省书。 7.申请书:申请加入学校某个组织、社团或申请奖学金时所使用的文书。 8.证明:老师或学校为学生开具的各种证明,如在读证明、实习证明等。 9.总结报告:教学工作、学生会工作等结束时所作的总结。 10.会议记录:记录教师会议、家长会等内容。

1.2 与上级的公文

1.请示:向上级机关请示报告工作或请求批准某事项。 2.报告:向上级报告工作情况、阶段性成果或问题。 3.总结汇报:阶段性工作总结或专项工作完成后的汇报。 4.申请报告:例如申请拨款、申请设备等。 5.方案:提交的工作计划、活动方案或实施建议等。 6.调查报告:针对某些问题或事件进行调查后向上级提交的报告。

1.3 校内公文

1.会议纪要:记录、总结各类校内会议内容和决定。 2.工作计划:各部门学期、学年或具体项目的工作安排。 3.工作总结:各部门阶段性或专项工作的总结。 4.意见和建议:向学校提出改进建议或作出意见反馈的文书。 5.布告:校内发布的一些正式信息,如教师招聘公告、考试安排公告等。 6.批复:学校领导对请示、报告的回复。 7.规章制度:学校制定的各类管理制度和规定。 8.奖惩通报:对师生表彰或批评的通报。 9.红头文件:学校正式发布的各类重要文件。

2. 科研应用

2.1 论文助手

  • 论文资料收集:帮助搜集与论文相关的文献与资料。
  • 论文辅助阅读:论文辅助助手可以快速帮助完成读取分析。运用文档读取插件,可以上传文档分析或总结文章内容,帮助阅读文章并提取知识精华和关键点。
  • 论文写作:论文写作助手可以根据要求帮助快速完成论文写作。输入论文主题,即可生成论文大纲,根据生成的大纲,逐步生成每一章节的论文内容。

3. 教学应用

3.1 教学助手

  • 智能辅导与个性化学习

    • 智能答疑系统:为学生提供及时、准确的答疑服务,解答学习中的疑难问题。
    • 个性化学习平台:基于AI的学习平台能够根据学生的学习进度、知识掌握情况和学习习惯定制个性化学习计划,提供个性化的练习题和学习资源。
    • 自适应学习系统:通过分析学生的学习数据,实时调整学习内容和难度,以适应每个学生的学习节奏和需求。
  • AI辅助教学

    • 教学资源推荐:根据教学内容和目标,AI能够自动为教师推荐相关的教学资源、课程素材和教学案例。
    • 备课助手:备课助手可以在备课环节中辅助教师快速生成教学大纲及教案。应用可根据课程主题、重点及要求,收集网络相关资料,整理并生成备课所需的内容。
    • 智能批改作业:利用自然语言处理技术,AI系统可以帮助教师自动批改客观题和主观题,提供批改建议,减轻教师的工作量。
    • 课堂管理:智能课堂管理系统可以帮助教师实时监控课堂情况,记录学生出勤、表现,进行课堂互动评估等。
  • 智能评估与分析

    • 学习数据分析:通过收集和分析学生的学习数据,AI能够生成详细的学习报告,帮助教师了解学生的学习情况和存在的问题,进而调整教学策略。
    • 智能测评系统:基于大数据和AI技术,系统能够设计和实施各类学科测评,并对测评结果进行智能分析,提供详细的反馈和改进建议。
  • 语言学习与翻译

    • 智能翻译工具:在英语或其他语言课程中,智能翻译工具可以帮助学生理解外文资料,进行翻译和口语练习。
    • 语音识别与评分:通过语音识别技术,AI能够对学生的发音、语调进行分析和评分,提供改进建议。
  • 虚拟现实与增强现实

    • 虚拟现实(VR)教学:通过虚拟现实技术,学生可以身临其境地参与到历史事件、科学实验等各种虚拟环境中,增加学习的趣味性和互动性。
    • 增强现实(AR)教材:利用增强现实技术,教科书上的图片可以变成动态的3D模型,帮助学生更直观地理解复杂的概念和内容。
  • 机器人助教

    • 教育机器人:一些先进的教育机器人可以在课堂中扮演助教角色,进行知识讲解、互动问答,甚至帮助老师进行课堂管理。
    • 陪伴型机器人:这些机器人在课堂之外可以陪伴学生学习,进行一些简单的知识问答和互动,激发学生的学习兴趣。
  • 心理健康与行为分析

    • 智能心理辅导:AI系统能够通过分析学生的行为数据、情绪表达等,帮助识别学生的心理问题,提供心理健康建议和辅助性服务。
    • 行为分析与干预:通过分析学生在课堂中的表现和行为轨迹,AI能够帮助教师识别和管理学生的行为问题,提供个性化的辅导和干预策略。
  • 教育资源管理

    • 智能排课系统:利用AI技术,能够根据学生和教师的时间表、课程需求,自动生成最优的课程安排方案。
    • 资源调度与优化:AI系统可以帮助学校优化图书馆、计算机房、多媒体教室等资源的使用,提高资源利用效率。
  • 智能翻译:智能翻译助手可以帮助快速翻译外文文献、文章、资料。将文章内容复制输入,一键翻译为中文内容。

  • 试题生成:可输入考试科目并上传包含所需知识点的文档。系统通过分 析这些资料并且结合设定的要求,自动化地产生一系列试题。此外,生 成的试卷可以转化成电子格式,方便在线测试或电子提交。

  • 绘图助手:绘图助手可以帮助教师快速生成教学用图、PPT配图等,协助在课堂上对知识内容进行多元化表达。使用自然语言输入画面描述,快速生成图片。

  • 学生评价助手:输入“学生优点”、“学生不足”和字数要求,应用将结合训练的评语文档内容以及给出的要求快速生成出评语。

4. 办公应用

4.1 办公助手

  • PPT助手:PPT制作助手,该应用能够接收关于课程的关键信息和特定要求,根据要求快速完成PPT大纲及内容的生成,并生成PPT文件。
  • 图片视频助手: 文生文、文生图、文生视频,图片处理,帮助教师方便处理图片与视频。
  • PDF一键摘要。

初步分析

1. 行政应用

  • 会议纪要: 记录会议内容和决议的重要文档,‌帮助参会人员回顾会议内容,‌明确工作任务和责任。‌
  • 请假申请:‌用于向上级领导请假并说明请假事由和请假时间。‌
  • 报销申请:‌向财务部门申请报销各类费用的文档。‌
  • 文件传真:‌快速传递文件和信息的沟通工具。‌
  • 安全管理制度:‌包括学校行政方面安全管理制度、‌学校消防安全管理制度、‌学校周边环境安全治理制度等,‌确保校园安全。‌
  • :‌负责学籍信息收集、‌汇总、‌校验、‌上报等工作,‌应用学籍系统开展日常学籍管理工作,‌确保学生学籍信息的真实、‌准确、‌完整。‌

2. 科研应用

  • 论文资料收集:帮助搜集与论文相关的文献与资料。(目前没有很好的模型可以做这类功能,需要做多阶段工作)
  • 论文辅助阅读:论文辅助助手可以快速帮助完成读取分析。运用文档读取插件,可以上传文档分析或总结文章内容,帮助阅读文章并提取知识精华和关键点。
  • 论文写作:论文写作助手可以根据要求帮助快速完成论文写作。输入论文主题,即可生成论文大纲,根据生成的大纲,逐步生成每一章节的论文内容。(可以做,需要做好交互)

3. 教学应用

  • 智能辅导与个性化学习

    • 智能答疑系统 大语言模型即可
    • 个性化学习平台:基于AI的学习平台能够根据学生的学习进度、知识掌握情况和学习习惯定制个性化学习计划,提供个性化的练习题和学习资源。(学生进度,知识掌握情况,学习习惯这些数据从哪里来?)
    • 自适应学习系统:通过分析学生的学习数据,实时调整学习内容和难度,以适应每个学生的学习节奏和需求。(学生的学习数据从哪里来?)
  • AI辅助教学

    • 教学资源推荐:根据教学内容和目标,AI能够自动为教师推荐相关的教学资源、课程素材和教学案例。(需要具体教学资源的例子)
    • 备课助手:备课助手可以在备课环节中辅助教师快速生成教学大纲及教案。应用可根据课程主题、重点及要求,收集网络相关资料,整理并生成备课所需的内容。(直接生成 VS. 收集网络相关资料? 后者代价更大,比如利用perplexity技术(比一般大模型的 key 贵 10 倍))
    • 智能批改作业
    • 课堂管理:智能课堂管理系统可以帮助教师实时监控课堂情况,记录学生出勤、表现,进行课堂互动评估等。(这个看起来不是需要算法做的事)
  • 智能评估与分析

    • 学习数据分析:通过收集和分析学生的学习数据,AI能够生成详细的学习报告,帮助教师了解学生的学习情况和存在的问题,进而调整教学策略。(缺原始数据)
    • 智能测评系统:基于大数据和AI技术,系统能够设计和实施各类学科测评,并对测评结果进行智能分析,提供详细的反馈和改进建议。(没有理解,需要进一步解释)
  • 语言学习与翻译

    • 智能翻译工具(文档,语音)
    • 语音识别与评分:通过语音识别技术,AI能够对学生的发音、语调进行分析和评分,提供改进建议。(这个比较大,可以做,但是需要比较长的时间)
  • 虚拟现实与增强现实

    • 虚拟现实(VR)教学:通过虚拟现实技术,学生可以身临其境地参与到历史事件、科学实验等各种虚拟环境中,增加学习的趣味性和互动性。
    • 增强现实(AR)教材:利用增强现实技术,教科书上的图片可以变成动态的3D模型,帮助学生更直观地理解复杂的概念和内容。
  • 机器人助教

    • 教育机器人:一些先进的教育机器人可以在课堂中扮演助教角色,进行知识讲解、互动问答,甚至帮助老师进行课堂管理。(可以做,但是这里需求不明确)
    • 陪伴型机器人:这些机器人在课堂之外可以陪伴学生学习,进行一些简单的知识问答和互动,激发学生的学习兴趣。(和之前貌似相似)
  • 心理健康与行为分析

    • 智能心理辅导:AI系统能够通过分析学生的行为数据、情绪表达等,帮助识别学生的心理问题,提供心理健康建议和辅助性服务。(可以做,但是这里需求不明确)
    • 行为分析与干预:通过分析学生在课堂中的表现和行为轨迹,AI能够帮助教师识别和管理学生的行为问题,提供个性化的辅导和干预策略。(如何交互?)
  • 教育资源管理

    • 智能排课系统:利用AI技术,能够根据学生和教师的时间表、课程需求,自动生成最优的课程安排方案。(这种不用 AI 最好,更精确,用算法实现)
    • 资源调度与优化:AI系统可以帮助学校优化图书馆、计算机房、多媒体教室等资源的使用,提高资源利用效率。(这种不用 AI 最好,更精确,用算法实现)
  • 智能翻译, 输入待翻译内容,以及需要翻译的语言,输出翻译内容

  • 试题生成: 通过输入知识点,学生年级,题目数量,输出: 卷子,答案,需要去看如何生成电子版供下载

  • 绘图助手:绘图助手可以帮助教师快速生成教学用图、PPT配图等,协助在课堂上对知识内容进行多元化表达。使用自然语言输入画面描述,快速生成图片。

  • 学生评价助手: 通过 prompt 可以调试出合适的,输入:学生不足,学生优点,字数,学生姓名?

4. 办公应用

  • PPT助手:PPT制作助手,该应用能够接收关于课程的关键信息和特定要求,根据要求快速完成PPT大纲及内容的生成,并生成PPT文件。 (需要先提供一批 PPT 模板)
  • 图片视频助手: 文生文、文生图、文生视频,图片处理,帮助教师方便处理图片与视频。
  • PDF一键摘要。
AI大模型AI助教阅读需 15 分钟

[toc]

前言

本系列文章是针对计算机经典书籍《Git 权威指南》的精简版学习笔记,方便大家快速了解内容以及速记,欢迎订阅

上一篇文章,我们学习了创建版本库的几个命令,不熟悉的同学可以参考 Git初始化

  • git log --stat
  • 可以看到每次提交的文件变更统计

5.1 修改不能直接提交吗

  • echo "Nice to meet you" >> welcome.txt
  • git diff
  • 可以看到修改后的文件与本库(与本地比较的不是版本库中的文件,而是一个中间状态的文件)中的文件的差异
  • 工作区与提交任务中相比的差异

diff --git a/welcome.txt b/welcome.txt

index 18832d3..9c2a787 100644

--- a/welcome.txt

+++ b/welcome.txt

@@ -1 +1,2 @@

Hello.

+Nice to meet you

  • 如果此时认为文件修改后可以直接提交,那就错了哦,
  • 尝试运行命令:git commit -m "Append a nice line."
  • 发现会运行不成功
  • 提交日志里面没有新的提交记录出现
  • 执行 git diff 可以看到和之前一样的结果,说明没有提交成功
  • git status查看文件状态,可以看到文件处于修改状态,
  • 精简模式 git status -s

➜ git commit -m "Append a nice line."

On branch master

Changes not staged for commit:

modified: welcome.txt

no changes added to commit

  • 所以如果想提交,需要利用 git add命令
  • git add welcome.txt
  • git diff HEAD
  • 工作区与HEAD相比
  • git diff --stagedgit diff --cached
  • 提交暂存区与版本库中文件的差异
  • git status -s
  • M位于第一列的含义
  • M welcome.txt
  • 版本库中的文件与处于中间状态--提交任务(提交暂存区,stage)中的文件相比有改动
  • M位于第二列的含义
  • 工作区当前的文件与处于中间状态--提交任务(提交暂存区,stage)中的文件相比有改动
  • M welcome.txt
  • 如果此时继续修改welcome.txt 文件
  • echo "Bye-Bye." >> welcome.txt
  • git status -s
  • MM welcome.txt
  • 不但版本库中最新提交的文件与处于中间状态--提交任务(提交暂存区,stage)中的文件相比有改动,而且工作区当前的文件处于中间状态--提交任务(提交暂存区,stage)中的文件相比也有改动
  • 现在再来提交
  • git commit -m "which version checked in?"
  • 如何证明提交成功呢
  • git log --pretty=oneline
  • git status -s
  • git diff

5.2 理解Git暂存区(stage)

  • git status 原理
  • 先依据.git/index文件中记录的时间戳,长度等信息判断工作区文件是否改变
  • 如果工作区文件的时间戳改变了,说明文件的内容可能改变了,需要打开文件,读取文件内容,与源文件做比较,
  • 如果文件内容没有改变,则将该文件新的时间戳记录到.git/index文件中
  • 使用时间戳,文件长度等信息进行比较要比通过文件内容比较要快得多
  • .git/index
  • 实际是一个包含文件索引的目录树,像一个虚拟的工作区
  • 记录了文件名和文件的状态信息(时间戳和文件长度,文件的内容没有存储在其中,而是保存在Git对象库.git/objects目录中

img

  • HEAD实际是指向master分支的一个 “游标”,所以图示的命令中出现HEAD的地方可以用master来替换
  • 图中的objects标识的区域为Git的对象库,实际位于 .git/objects 目录下,这一点会在后面的章节中重点介绍
  • 当对工作区修改(或新增)的文件执行git add命令时,暂存区的目录树将会被更新,同时工作区修改(或新增)的文件内容会被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中
  • 当执行提交操作(git commit)时,暂存区的目录树会写到版本库(对象库)中,master分支会做相应的更新,即master最新指向的目录树就是提交时原暂存区的目录树
  • 当执行git reset HEAD 命令时,暂存区的目录树会被重写,会被master指向的目录树所替换,但是工作区不受影响
  • 当执行git rm --cached <file> 命令时,会直接从暂存区删除文件,工作区则不做出改变
  • 但执行git checkout ., 或git checkout -- <file> 命令时,会用暂存区全部的文件或制定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动
  • 但执行git checkout HEAD . 或git checkout HEAD <file> 命令时,会用HEAD指向的master分支中的全部或者部分文件替换暂存区和工作区中的文件,这个命令也是极具危险性的,因为不但会清除工作区中的未提交的改动,也会清除暂存区中未提交的改动

5.3 Git Diff魔法

1. 工作区,暂存区和版本库的目录树浏览

➜ git ls-tree -l HEAD

100644 blob 7e12803b85898fd0ae42d0a793c3eaf9f0cdd66e 28 test.ini

100644 blob 9c2a787a930a7b547abdf71e47ab1a67de890832 24 welcome.txt

  • -l 参数可以显示文件的大小
  • 第一个字段是文件的属性(rw-r--r--)
  • 第二个字段说明是Git对象库中的一个blob对象(文件),
  • 第三个字段则是该文件在对象库中对应的ID--一个40位的SHA1哈希值格式的ID
  • 第四个字段是文件大小
  • 第五个字段是文件名
  • 清除当前工作区中没有加入版本库的文件和目录(非跟踪文件和目录)
  • git clean -fd
  • 用暂存区内容刷新工作区
  • git checkout .
2. Git diff 魔法

img

  • 工作区和暂存区比较
  • git diff
  • 暂存区和HEAD比较
  • git diff --cached
  • 工作区和HEAD比较
  • git diff HEAD

5.4 不要使用git commit -a

  • 好处
  • 减少用git add 命令标识变更文件的步骤
  • 坏处
  • 丢掉Git暂存区带给用户的最大好处:对提交内容进行控制的能力
5.5 搁置问题,暂存状态
  • git stash
  • 保存当前共奏进度
Git阅读需 6 分钟

[toc]

前言

本系列文章是针对计算机经典书籍《Git 权威指南》的精简版学习笔记,方便大家快速了解内容以及速记,欢迎订阅

4.1 创建版本库及第一次提交

  1. 首先查看自己的git版本
  • git --version
  • 比如我的是 git version 2.24.3 (Apple Git-128)
  1. 建立新工作目录
  • 如果git版本是1.6.5+
  • git init demo
  • 否则就一步一步来
  • mkdir demo
  • cd demo
  • git init
  1. 查看隐藏的git目录
  • ls -aF
  • 会显示 ./ ../ .git/
  • 其中 .git 就是Git版本库(又叫仓库,repository)
  • 版本库所在目录称为工作区,比如我的 ~/coding/git/demo
  1. 为工作区加内容
  • echo "Hello." > welcome.txt
  • 需要运行命令 git add welcome.txt将新建立的文件添加到版本库
  • 提交:git commit -m "initialized."
  • -m 为提交说明
  • [master (root-commit) 1a557fb] initialized. 从这可以看出此次提交在名为master分支上,且是该分支的第一个提交(root-commit),提交ID为1a557fb
  • 1 file changed, 1 insertion(+)可以看出此次提交修改了一个文件,包含一行的插入
  • create mode 100644 welcome.txt 可以看出此次提交创建了一个新文件

4.2 思考:为什么工作区根目录下有一个.git目录

  • Git及其他分布式版本控制系统(如Mercurial/Hg, Bazaar)的一个共同特点是版本库位于工作区的根目录下
  • 传统的集中式版本控制系统需要建立版本库和工作区的对应
  • Git的设计是的所有的版本控制操作都在本地即可完成
  • Git提供了一条命令用来搜索工作区的文件内容
  • git grep "Hell"
  • 结果是 welcome.txt:Hello.
  • 如果在工作区的子目录中执行Git命令
  • 会在工作区目录中依此向上递归查找git目录,找到的.git目录就是工作区对应的版本库,.git所在的目录就是工作区的根目录,文件.git/index记录了工作区文件的状态(实际上是暂存区的状态)
  • 在非工作区执行git命令时会因为找不到.git目录而报错
  • 如果想知道工作区的根目录的位置
  • 先创建多级目录并进入
  • mkdir -p a/b/c
  • cd a/b/c
  • 当前目录:~/coding/git/demo/a/b/c
  • 显示版本库.git目录所在的位置
  • git rev-parse --git-dir
  • /Users/xujie/coding/git/demo/.git
  • 显示工作区根目录
  • git rev-parse --show-toplevel
  • /Users/xujie/coding/git/demo
  • 显示工作区根目录的相对目录
  • git rev-parse --show-prefix
  • a/b/c/
  • 显示从当前目录后退到工作区的根的深度
  • git rev-parse --show-cdup
  • ../../../

4.3 git config命令的各参数有何区别

  • 使用不同参数的git config命令时机操作了不同的文件
  • git config -e
  • 实际上操作 ./demo/.git/config (版本库级别,优先级最高)
  • git config -e --global
  • 实际上操作: ~/.gitconfig (用户全局配置)
  • git config -e --system
  • 实际上操作 /etc/gitconfig (系统级别)
  • git配置文件采用的是INI 文件格式
  • cat .git/config

[core]

repositoryformatversion = 0

filemode = true

bare = false

logallrefupdates = true

ignorecase = true

precomposeunicode = true

  • 读取配置文件的属性
  • git config <section>.<key>
  • git config core.bare
  • false
  • 更改或者设置INI文件中某个属性的值
  • git config a.b something
  • git config x.y.z something

$ cat .git/config

[core]

repositoryformatversion = 0

filemode = false

bare = false

logallrefupdates = true

symlinks = false

ignorecase = true

[a]

b = something

[x "y"]

z = something

  • 操作任何其他的INI文件
  • GIT_CONFIG=test.ini git config a.b.c.d "hello, world"

$ cat test.ini

[a "b.c"]

d = hello, world

  • 从配置文件test.ini中读取配置
  • GIT_CONFIG=test.ini git config a.b.c.d
  • hello, world

4.4 思考:是谁完成的提交

  • 可以通过执行下面的命令删除user.name 和 user.email的配置
  • git config --unset --global user.name
  • git config --unset --global user.email
  • 然后提交
  • git commit --allow-empty -m "who does commit?"

[master df2b623] who does commit?

Committer: xujie <xujie@xujies-MacBook-Pro.local>

Your name and email address were configured automatically based

on your username and hostname. Please check that they are accurate.

You can suppress this message by setting them explicitly:

git config --global user.name "Your Name"

git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

git commit --amend --reset-author

1 file changed, 2 insertions(+)

create mode 100644 test.ini

  • git log --pretty=fuller

commit df2b62367ca80056d248113aed8f3dd4d10dcdca (HEAD -> master)

Author: xujie <xujie@xujies-MacBook-Pro.local>

AuthorDate: Wed Sep 28 22:37:49 2022 +0800

Commit: xujie <xujie@xujies-MacBook-Pro.local>

CommitDate: Wed Sep 28 22:37:49 2022 +0800

who does commit?

commit 1a557fb84b2ed006bca7395729b1efb71baf96f1

Author: jiexu <admin@example.com>

AuthorDate: Wed Sep 28 21:39:06 2022 +0800

Commit: jiexu <admin@example.com>

CommitDate: Wed Sep 28 21:39:06 2022 +0800

initialized.

  • 重新配置提交者信息
  • git config --global user.name "jiexu"
  • git config --global user.email jiexu@example.com
  • 重新提交修改
  • git commit --amend --allow-empty --reset-author

4.5 思考:随意设置提交者姓名,是否不太安全

  • 这是分布式版本控制系统的特性使然,每个人都是自己的版本库的主人,很难也没有必要进行身份认证,所以无法使用经过认证的用户名作为提交的用户名

备份本章的工作

  • 备份内容
  • git clone demo demo-step-1
Git阅读需 5 分钟

数据库篇

  • 查看已有数据库
  • \l

recipes=# \l

List of databases

Name | Owner | Encoding | Collate | Ctype | Access privileges

-----------+----------+----------+------------+------------+-----------------------

postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |

recipes | postgres | UTF8 | en_US.utf8 | en_US.utf8 |

template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +

| | | | | postgres=CTc/postgres

template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +

| | | | | postgres=CTc/postgres

(4 rows)

  • 选择数据库
  • \c + 数据库名称,例:\c recipes

表相关命令

  • 查看所有表
  • \dt
  • \d
  • select * from pg_tables;这个命令会列出所有的,包含postgresql自己的
  • select tablename from pg_tables where schemaname='public'

List of relations

Schema | Name | Type | Owner

--------+-------+-------+----------

public | image | table | postgres

(1 row)

  • 查看表结构
  • \d + 表名,例如:\d image
  • SQL 方式

SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull

FROM pg_class c,pg_attribute a,pg_type t

WHERE c.relname = 'cms_qq' and a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid

ORDER BY a.attnum;


Table "public.image"

Column | Type | Collation | Nullable | Default

--------------+-----------------------------+-----------+----------+---------

orignal_path | character varying(1000) | | not null |

image_path | character varying(1000) | | not null |

dir | character varying(100) | | not null |

has_niaowo | boolean | | |

has_detected | boolean | | not null | false

created_at | timestamp without time zone | | not null | now()

deleted | boolean | | not null | false

version | integer | | not null | 0

PostgreSQL阅读需 2 分钟

* git fetch --tags --progres
* git rev-parse
* git config core.sparsecheckout
* git checkout -f
Git阅读需 1 分钟

说出三种线程间通信的方式

  • Thread + Handler
  • 广播
  • AsyncTask

说出三种进程间通信的方式

  • AIDL
  • 消息队列
  • 管道
操作系统阅读需 1 分钟

Linux入门概述

Linux 内核最初是由芬兰人

VM安装相关

Linux目录结构

系统管理操作

远程登录

用户和用户组管理命令

基本常用命令

VI/VIM编辑器

rpm

shell编程

Linux阅读需 1 分钟