Git 到底是干啥的?零基础小白听完都懂了并且轻松驾驭它

Git 到底是干啥的?零基础小白听完都懂了并且轻松驾驭它

      git,通俗的来说就是一种用来多人文件版本合作的工具,但是对一些非程序员的项目小白或者没有程序基础的但是想要入行做程序员的人来说,完完全全理解起来稍微有点困难。这篇文章不像很多文章一样是枯涩的码字教学。现在,我们就用最通俗易懂的方式,让你从零基础理解他,并且使用他。这种教学方法不是把你当白痴的教学方法,反而是让你快速入门深刻理解它,并记住它的教学方法。因为可能说得比较详细,篇幅较长,还得请你耐心的把他看完。

一、git的作用

1、git的版本控制

文件永远不会只有一个版本,这句话我们似乎用亲身经历证明过。你是否有过以下经历👇

📘论文会有“终稿v1、终稿v2、终稿最终版”、
✍设计稿会有“改版A、改版B、改版C”、
🧺甚至自己写的文章也会来回改十几遍。
🥚更不用说单独只通过一个本地夹操刀一个大型项目了

突然有一天你觉得你的论文、设计稿、文章、项目某一个节点开始脱离了原本的方向或者发生了一些错误,但是你已经对其进行多处修改了,单独再修改不仅费事废经历,还容易发生遗漏。

你或许信誓旦旦的告诉我,你可以这样做。。。👇

论文_最终v1.docx
论文_最终_改过的v2.docx
论文_最终2_真的最终.docx
论文_最终最终版_别改了.docx
论文_最终最终版_真的别改了_last.docx

不仅每次要单独保存文件(还容易忘),甚至最后你已经分不清哪个是最新版,哪个删了重点改了什么东西。而且这种方法对于大型的项目来说。。。

🕰 或许聪明的你想到了:

如果能像游戏里的存档点
保存一下是一个点,明天再改它又是一个点。
你死了(改错了),读档就行。
这样就好了

🎯 是的,Git做的事情非常简单:

帮你保存每一次修改,并能随时回到任何一次修改。
没有玄学,就是这么接地气

因此我们可以将Git = 文件的时间机器

你可以把Git理解成一个“文件历史的照相机”:

你每改一次资料Git就悄悄拍一张照片你还可以在照片背面写上备注
第一天写了初稿📷 咔!留了一版这是我的初稿哦
第二天删了两段📷 又拍一张第三四段不太通顺,我删掉啦
第三天修改标题📷 再拍一张修改了标题
第四天添加了新内容📷再拍一张增加了”女主爆甩男主的情节“
第五天写完稿子📷最后拍一张完稿!

如果第四天你突然后悔:
我觉得还是第一天写得好!”

没关系——
Git把每一张“版本照片”都替你保存着,你可以直接穿越回第一天。

是不是很像时间机器?
坐上去 → 调整日期 → 回到过去。

你只要知道:

改文件 → Git记一次
改错了 → Git带你回去
文件乱了 → Git给你旧版本
一切可撤回、可穿越、可找回

在这里总结一下,Git就是文件的照相机和备忘录,它记录着你文件的每一个版本,学了Git,你的文件不会再变成一团乱麻。

2、git的团队合作

如果你一个人写文档,Git能当备份器、时光机、后悔药。
但真正好玩的地方是——多人一起正确使用它,像开了外挂。

你想象一个场景:

三个人一起写同一个方案文档或者项目,如果不用Git会怎样?假设三个人一起在V2文档上作业:
情况一:

情况很真实也很可怕
小王写着写着发你一个V3“你改改,我再看”
你改完发给小李V4小李又改回V2说V3不行
三份文件互相不一样谁是最新版?谁改错了?没人知道
最后大家互相讨论,将v4作为最新版大家同时将你文件里的v4更新为自己的最新版本

这种情况下,如果项目很多人,大家都要下载更新文件,并且如果有些人如果通知不到位,没有读到新信息,没有及时更新文件,并且进行了新作业,后续整理文件会不会很麻烦?

情况二:

情况很真实也很可怕
小王写着写着发你一个V3“你改改,我再看”
你改完发给小李V4小李说这个V3不行,他自己已经写好了一个v3
小王和小李各一个V3,你有一个在小王基础上的v4大家讨论得到,小李的V3确实很好,但是你的V4怎么办
改来改去对不上最后三个人互相背锅 😩

这种情况下是大家没有沟通好的情况,但是发生了错误很难补救

情况三:
就算大家通过好,如果因为时间关系同时合作文件将非常地狱

情况很真实也很可怕
时间关系,小王,小李,你同时在v2上作业大家需要将自己各自的作业合并为一个v3的作业
大家艰难的合并且细对每一个文件大家发现你和小王修改了同一个文件
你和小王要各保存自己的一部分冲突文件要合并修改

这,就是现实世界的多人文件地狱

而 Git 的出现,就是为了结束混乱。

🧩 用Git,每个人都能同时做事

你可以把Git想象成一本大型练习册,
每个人都可以同时写自己的那一页,不会互相抢笔

  • 小王写第一章
  • 你改目录
  • 小李润色结尾
  • 经理审稿只看版本差异
  • Git 自动把大家写的部分合起来

就像几个人一起拼拼图,不用挤一个位置。

没有喊话、没有抢文件、没有版本混乱。

💡 你写你的,我写我的,最后Git帮大家拼好。


🔥 就算冲突了,Git也能帮你处理

有时候不可能完全不重叠——

你改了第三段,小李也改了第三段,那怎么办?

Git不会让你们打架,它会说:

“你们俩第3段写法不一样,我标出来,你们商量选哪个。”

它不会吞历史、不会乱合,也不会神秘地覆盖别人。
一切公开透明、可对比、可选择。

它不是替你做裁判,而是把分歧摆在你面前让你决定。

非常文明,非常克制。
 

🏆 团队用Git的三个大优点

优点小白理解版解释
① 不会互相覆盖因为git可以帮你自己找出冲突,不会出现“我改了你又给我删了”的问题
② 每个人可以同时独立工作不抢文件,不等别人改完才轮到你
③ 所有修改有迹可循谁写了啥一清二楚,避免甩锅

一句话总结:

你做你的,我做我的;最后Git把结果合成一个版本,历史都存着。

合作从“混乱”变成“有序”

3、git的项目团队协作的案例示例

三个人一起做《坦克大战》游戏项目

团队组成如下:

假设我们有一个三人小组🔥

角色负责内容
小策(策划)关卡设计、玩法文档
小美(美术)坦克素材、地图贴图
小程(程序)代码、功能实现

他们三个人像这样分工并协作:

① 小程创建项目仓库(Git仓库 = 游戏资料大箱子)

里面有资料夹,例如:

/code 代码 /assets 美术资源 /docs 策划文档 

② 每个人在各自的文件夹开发,不会互相干扰

他们不再围着一个文件夹抢,而是:

工作方式
小策写玩法文档 → 在 docs 文件夹
小美画坦克素材 → 在 art 文件夹
小程写炮弹发射代码 → 在 code文件夹

当他们开发好一部分功能或内容时:

小策:文档完成 → 提交
小美:坦克素材打磨完 → 提交
小程:移动逻辑做完 → 提交
这种情况下似乎他们不会冲突、不会覆盖别人成果、每个人的贡献清清楚楚,他们只需要简单的拉取分支和提交分支就可以了

接下来是更复杂的情况:

团队组成如下:

角色人数工作内容
美术2人(小红 & 小蓝)坦克、地图、爆炸特效
策划1人(小白)玩法规则、关卡文档
程序3人(小程、小明、小涛)坦克移动、AI、子弹系

为了避免抢文件,他们这样分工 👇

内容分工(各自独立)Git 分支分法(各干一条线)
小红 → 画坦克皮肤在 art文件夹
小蓝 → 做爆炸/地图素材在 art文件夹
小白 → 调规则+关卡文档在 docs 文件夹
小程 → 坦克系统、子弹系统等功能在 code文件夹
小明 → AI系统等功能在 code文件夹
小涛 → UI客户端功能在 code文件夹

这种情况下可能会发生:
❌ 美术素材互相覆盖(两位美术同时修改了某一张图片)
❌ 程序写的功能撞车、不兼容(程序同时编写了同一模块的的代码)


这种情况简单的拉取分支和提交分支似乎不太够,为了更有效的管理他们的合作文件,就程序组来举例,比如小程、小明、小涛共同在brach-code开发游戏的代码项目,可以通过更新代码分支,拉取代码分支,添加代码分支,合并代码分支,切换代码分支等远程和本地的操作来完成自己的操作,在后面的章节中会详细讲到

j

二、git仓库

1、本地仓库

🟦 什么是本地仓库?

当你从远程仓库克隆项目到电脑,或自己在本地 git init 创建一个项目时,就会生成一个 本地仓库
它就像一个:

📌 记录你所有修改历史的私人工作区
📌 不联网也能使用的开发空间
📌 试验、备份、版本管理的多功能实验室

用更贴近日常的小比喻👇

本地仓库 = 你自己桌面上的草稿本
你可以改、可以写乱、可以翻以前的内容,谁也不会受影响。
等你满意后再把结果拿去“共享”——那就是 push 到远程。

🟦 本地仓库实际上包含三个区域

Git区域理解意义
工作区 Working Directory你的草稿纸文件实际编辑的地方
暂存区 Staging Area草稿准备区、待提交篮子想提交哪些改动先放进去
本地仓库 Local Repository历史记录册commit 后的永久版本存档

(这会这里小白可能难理解,后面实操了就知道了)

🟦 本地仓库能做的事

随时 commit,保存每一次改动历史
前面我们说了git帮你保存每一次修改,并能随时回到任何一次修改
这个保存的操作就是commit操作,保存每一次改动历史

你不需要等到完美再提交,只要改动完成一小步就能保存:

✔ 新增功能 → commit
✔ 调整UI → commit
✔ 修bug → commit

每一次都是一张“时光快照”,想回滚随时回:
🌱 commit 就像给你的项目拍照片
💥 崩了?直接回到上一张照片,稳如老狗

可以无限分支,做实验安全无风险

分支是本地仓库最大自由度,这里多出来的分支,你可以看作从copy一份项目文件出来用于你的项目实验

示例:

main(稳定版) ├─ try-ai-test ← 测AI敌人看是否好玩 ├─ ui-redesign ← 改坦克UI但怕翻车? └─ crazy-physics ← 胡搞弹道轨迹也不怕

无论试验多疯:

🟡 不会影响主项目
🟡 不会影响队友
🟡 随时可合并 or 放弃

Git本地仓库让探索变得无负担。
你甚至可以尽情写错,因为随时回滚。


③ 本地仓库可以脱离网络使用(离线依然强大)

想象你坐高铁、去咖啡馆断网、飞机上开发:

你依然可以:

✔ 查看版本历史
✔ 建分支、写代码、写策划文档
✔ commit 多次保存快照


④ 推送前可以自查,不会破坏主项目

直接在云端写代码 = 风险很大
但 Git 不允许直接改远程,而是要求先在本地完成修改

你在本地打磨 → 测试通过 → push
这样保证提交到远程的永远是靠谱版本

队友看到的是你思考后的结果,不是半成品或错误文件

2、远程仓库


🧊 什么是远程仓库?

有什么方法能给存储每个版本的文件,并且让队友也能即时看见储每个版本的文件。是的,使用网络,并且创建一个远程仓库。
远程仓库 = 把你的代码/文件存在网上,而不是只放在你电脑里。

远程仓库 可以存储你每次提交的信息,并且队友也能通过远程仓库即时的看见你提交的信息
一般靠谱的队友会把自己本地仓库深思熟虑的工作成果上传到远程仓库!

这样做最重要的作用是:

📌 换电脑也能随时拿到项目文件
📌 队友能随时一起修改项目文件
📌 本地电脑坏了文件也不会受到任何损失
 

🧊远程仓库能做的事

① 本地代码推送到远程仓库(push)

你在本地写代码 → commit 保存 → 想共享给队友
这时你会执行 push

push = 把你电脑里的成果上传到远程仓库,让别人也能看到。

适用场景:

✔ 完成一个功能
✔ 修完 bug
✔ 调整文档或素材
✔ 想与团队同步你的进度


② 从远程拉取最新代码到本地(pull)

当别人推送了更新,而你本地还是旧版本,你需要 pull

pull = 把他人更新下载并合并到本地,让你保持最新进度。

适用场景:

✔ 队友开发完新模块
✔ 远程仓库有人修了冲突
✔ 有关键功能更新你要接着做

一句话总结 ①②:

我写完 → push 上传
别人更新 → pull 下载
 

③支持权限管理,决定谁能访问/修改

你可以设置:

  • 公开还是私有?
  • 谁能看?
  • 谁能 push?
  • 谁只能 read-only?

🧊 为什么要有远程仓库?(它解决了哪些痛点)

这里对小白略抽象,可以快速看一遍尽量理解,实在看不懂没关系,你就当我水字数

①  做多人协作的「中心版本库」

没有远程仓库时,每个人都拿着一份项目副本,互相发压缩包、发U盘:

  • 谁是最新版?
  • 谁改的东西是对的?
  • 同时改冲突怎么解决?

一团乱。

有了远程仓库之后:

  • 约定:以远程仓库为“唯一权威版本”
  • 大家从远程拉最新 → 在本地改 → 改完再推回远程
  • 团队协作就变成这样一条闭环:

远程拿 → 本地改 → 传回远程 → 别人再拿最新

所以你可以这么形容:

远程仓库是这个项目的“大家都认的源头版本”。


② 做项目的「安全备份」

只放在本地会怎样?

  • 电脑坏了、硬盘挂了、被偷了 → 项目没了
  • 不小心删库 → 直接社会性死亡

而远程仓库在云端服务器上,通常会:

  • 异地备份
  • RAID 磁盘阵列
  • 运维团队守着

你本地炸了,只要远程在,一切还在。
最多再 clone 一份下来继续干活。


③做多设备之间的「同步枢纽」

你可能不止一台设备:

  • 公司电脑
  • 家里电脑
  • 笔记本 / iPad

有了远程仓库,流程变成:

  • 在公司写到一半 → push
  • 回家 pull 一下 → 立刻接着写

远程仓库就是你的“云端中转站”,
你在哪台电脑,就从云里把项目捞下来继续写。


④ 做「权限控制」和「审计记录」

远程仓库一般都在平台上托管,比如:

  • GitHub、Gitee、GitLab.com、Bitbucket(公共云)
  • 公司内网 GitLab / Gitea(自建,只有员工能访问)

这些平台会提供:

  • 谁能访问这个仓库(公开 / 私有,成员列表)
  • 谁能写(push)?谁只能看(pull)?
  • 谁在什么时候提交了什么东西(提交记录 + 日志)

你可以把它理解成:

远程仓库 = 上锁的共享文件柜 + 自动记账本。
锁决定谁能动,记账本记录谁动过。


⑤ 驱动自动化:测试 / 部署 / 检查(进阶但很重要)

很多团队会约定:

“只要有人 push 到远程仓库,就自动触发一件事。”

比如:

  • 自动跑一遍测试,看有没有写挂
  • 自动构建、自动部署到测试环境 / 线上
  • 自动做代码检查(lint、格式化)

也就是说:远程仓库经常是整个自动化流水线的触发点
是“CI/CD 的起点”,这一点后续进阶章节里会详细提到。
 

🧊 常见的 Git 远程仓库平台有哪些?

平台类别小白理解
GitHub全球最大开源平台有点像“代码界的淘宝城”,啥都有
Gitee(码云)国内平台,速度快类似国产 GitHub,访问更顺畅
GitLab企业常用,可私有部署就像公司自建仓库,只员工能进
Bitbucket程序团队多人协作多小团队免费私库多,适合开发协作

三、git操作详解

现在大家理解了git的主要作用,本地仓库,远程仓库,下面我通过一个简单的项目实例来讲解一下git的详细操作步骤,还是坦克大战六人组
 

团队组成如下:

角色人数工作内容
美术2人(小红 & 小蓝)坦克、地图、爆炸特效
策划1人(小白)玩法规则、关卡文档
程序3人(小程、小明、小涛)坦克移动、AI、子弹系

为了避免抢文件,他们这样分工 👇

内容分工(各自独立)Git 分支分法(各干一条线)
小红 → 画坦克皮肤branch:brach-art
小蓝 → 做爆炸/地图素材branch:brach-art
小白 → 调规则+关卡文档branch:brach-doc
小程 → 坦克系统、子弹系统等功能branch:brach-code
小明 → AI系统等功能branch:brach-code
小涛 → UI客户端功能branch:brach-code


1、git基础操作

①git init操作


程序员小程在自己的文件夹里创建了一个项目文件,并且项目文件是这样的:

/code 代码 /assets 美术资源 /docs 策划文档 

这里仅仅是一个文件,还不是本地仓库,但是他打开终端 / Git Bash,选一个这个项目的文件夹,并输入:

git init(让文件夹变成Git仓库)

这时候小程就有属于自己的本地仓库了


②git add操作和git commit

创好本地仓库后,再来回顾一下本地仓库的三层区域:

区域Git 名字小白理解
工作区Working Directory你实际在改的文件夹
暂存区Staging Area“待提交篮子”,先挑准备好的改动放进去
本地仓库Local Repository历史相册,真正永久记录改动的地方
git add //把改动从“工作区”放进“暂存区”,为下一次 commit 做准备 git commit //把暂存区的内容打包,存进“本地仓库”变成一个历史版本

一张简化流程就是:

你改文件 → git add → git commit 工作区 暂存区 本地仓库

git add 命令示例:

git add main.py # 把 main.py 的修改放入暂存区 git add assets/ # 把 assets 目录下所有变化加入暂存区 git add . # 把当前目录所有变更都加入暂存区 

git commit命令示例:

git commit -m "实现坦克移动和开火功能" git commit -m "更新美术资源:红色坦克皮肤" git commit -m "补充文档:第一关敌人刷怪规则" 

一个 commit 会包含:

  • 当前暂存区所有文件的版本
  • 提交人信息(谁)
  • 提交时间(什么时候)
  • 提交说明(做了什么)

以后你可以回到这个 commit:

  • 看那时候项目长什么样
  • 对比当时和现在的差别出了问题
  • 可以回滚/对比排查

暂存区的作用:可以先把“确定的部分”放进暂存区,不确定的先留着

比如你还在试验一半:

  • /code/move.py 已经改完了,确定没问题 ✅
  • /code/ai.py 还在乱试,根本写不完 ❌

你可以:

git add code/move.py # 这部分先纳入提交计划 # ai.py 先别管 git commit -m "完成坦克移动重构" | # ai.py 继续改,改爽再说

add = 我对这些改动“有信心了,准备提交”
工作区未 add 的内容 = “还在玩,还没想好,先别进历史”。


回到小程那里:

git add . #把art,code,doc文件放入缓存区 git commit -m "完成art,code,doc初始文件构造" #这样小程就把自己的初始缓存项目放入缓冲区了

小程通过上述两部操作,完成了一次自己项目对本地仓库的提交,我们就可以通过历史记录来查看这次操作了


③git log操作

git log 是什么?

一句话:

git log 用来查看提交历史(commit 记录)
它就像时间轴,你能看到项目从过去到现在经历了什么改动。

执行:

git log 

你就可以看见一下记录

commit 45bb3c4f4d... Author: 小程 <[email protected]> Date: 2024-01-22 16:41 "完成art,code,doc初始文件构造" 


④git remote add origin 操作(小白可跳过)

小程本地创建了一个 Git 仓库,并且完成了第一次提交后,他想要把这个本地仓库与远程仓库(比如 GitHub、GitLab 或 Gitee)关联起来。其通过执行 git remote add origin 命令,就可以将本地仓库与远程仓库绑定,使得后续能够方便地推送(push)和拉取(pull)代码。

命令格式:

git remote add origin <远程仓库地址>

解释:

  • git remote 是 Git 用来管理远程仓库的命令。
  • add 是用来添加一个新的远程仓库。
  • origin 是远程仓库的名称,通常使用 origin 作为默认名称,你也可以使用其他名字,但 origin 是惯例。
  • <远程仓库地址> 是你在 GitHub、GitLab 或 Gitee 等平台创建的仓库地址,通常是一个 URL。例如:https://github.com/your-user/your-repo.git

示例:

git remote add origin https://github.com/your-team/tank-battle-game.git

通过这个命令,本地仓库与远程仓库就建立了关联。此后,所有的 git pushgit pull 操作都会默认对这个远程仓库进行。

⑤git push 操作

连接远程仓库后, 小程想将本地仓库的内容(提交)上传到远程仓库,这时候就要用到git push

git push 是将本地仓库的更改(提交)上传到远程仓库的命令。通常在完成本地开发后,想要与团队共享代码,或者备份代码到远程仓库时,会使用 git push

命令格式:

git push <远程仓库名> <本地分支名>:<远程分支名> <远程仓库名>:通常是 origin,表示你之前通过 git remote add origin 命令关联的远程仓库。 <本地分支名>:是你当前工作的本地分支名,例如 main 或 master。 <远程分支名>:远程仓库中你希望将本地分支推送到的分支名,通常和本地分支同名。

如果是第一次推送,并且本地和远程仓库的分支还没有关联,可以用:
 

git push -u origin main

其中:

  • -u 表示设置 upstream 关联,也就是说以后就可以直接用 git push 不需要再指定远程仓库和分支。
     

到此为止:小程建立好了本地仓库,并把仓库文件上传到远程仓库,其他队友,就可以通过远程仓库来拉取或者克隆项目了。
下面是建立仓库的流程:

你电脑里先有项目文件 ↓ git init(让文件夹变成Git仓库) ↓ git add + git commit ↓ 再去平台创建远程仓库 ↓ git remote add origin <远程仓库地址> ↓ git push 上传到远程 

⑥git clone操作

📍仓库项目初始文件已建在 GitHub / GitLab / Gitee

每个人打开终端 / Git Bash,选一个放项目的文件夹,:

git clone <远程仓库地址> # 比如: # git clone https://github.com/your-team/tank-battle-game.git

执行完后,他们的电脑里就多了一个文件夹:

tank-battle-game/ ├── README.md ├── (之后会有)code/ ├── (之后会有)assets/ └── (之后会有)docs/

这个文件夹,就是各自的本地仓库,接下来所有改动都在这里发生。

这一步叫:clone(克隆)

clone可以看作:
把远程仓库完整“拷贝一份”到自己电脑上,变成本地仓库。

但这和“下载 ZIP 压缩包”相比,有两个本质区别:

  • zip 只是一堆文件,没 Git 历史、不能 commit、不能 push
  • clone 下来的,是一个带完整 Git 历史、可以继续版本管理的仓库

2、git分支操作

①git pull 操作
 

项目成员通过git clone操作在本地得到了大家共同的项目,如果后续有成员通过git push更新了这个项目,那我们还需要进行git clone来更新项目吗?不用,我们直接通过git push命令来执行就可以了。

git pull = 从远程仓库拉取最新更新,并自动合并到你的本地仓库。

git pull 实际发生了两件事

git pull 其实是两个命令的合体:

git fetch (从远程把更新”拉下来“)
+ git merge (把更新合并进你的当前分支)

所以 pull = fetch + merge

流程示意:

远程仓库(远程最新版本) ↓ fetch 本地仓库(拿到更新但还没合并) ↓ merge 你的当前分支(更新后的最终版本)

你只执行一条 pull,它内部自动帮你完成这两步。

假设队友小红通过以下操作推了新的坦克皮肤:

git add assets/tank.png git commit -m "新增蓝色坦克皮肤" git push 

你只需输入:

git pull

本地立刻出现:

/assets/tank.png ✔

下面我来详细讲一下git fetch 和 git merge

②git fetch 操作


git fetch:只“拿”,不“动”

一句话解释

git fetch:从远程仓库把最新的提交记录拉到本地,但不改动你当前的代码文件**。

也就是说:

  • 它会更新 origin/mainorigin/dev远程分支的指针
  • 但它不会去改你现在正在用的分支(比如本地 main

小白可以这么想:
把远程仓库想成 “总店账本”,本地仓库是你手里的“分店账本”。

  • git fetch 就像:
    去总店复印了一份最新账本带回店里,但你还没用它去改自己本地的账本。

你只是知道了“总店现在是什么样”,
但你自己的账本还停留在原来的状态。

实际会发生什么?

执行:

git fetch # 或者更明确一点: git fetch origin

Git 会做几件事:

  • 从远程仓库把最新提交记录下载下来
  • 更新本地的“远程跟踪分支”
    • 比如:origin/mainorigin/devorigin/feature-xxx
  • 不改变
    • 你的当前分支(如本地 main 的内容保持不变)
    • 你的工作区文件(不会突然多/少东西)

你可以理解为:

“先把远程的最新情况同步到本地的数据库里,但先不动我的工作区。”

查看 fetch 之后的情况

你可以用:

git log --oneline --graph --all

看到:

  • 本地 main 在某个位置
  • origin/main 可能已经往前走了几步(多了几次提交)

这时候你就知道:
“远程已经更新,但我本地还没跟上。”

③git merge操作

后续会继续更新,30号之前完成,请大家点赞收藏。。。。

Read more

Zvec 架构深度解析:阿里巴巴开源的轻量级进程内向量数据库

Zvec 架构深度解析:阿里巴巴开源的轻量级进程内向量数据库 Zvec 是阿里巴巴开源的一个轻量级、闪电般快速的进程内向量数据库。本文将深入分析 Zvec 的代码架构,揭示其核心设计理念和技术实现细节。 一、项目概览 1.1 核心特性 Zvec 基于 Alibaba 久经考验的 Proxima 向量搜索引擎构建,提供生产级的低延迟、可扩展的相似度搜索能力: * 极致性能:毫秒级搜索数十亿级向量 * 简单易用:无需服务器配置,零依赖安装 * 混合向量支持:同时支持稠密向量(Dense)和稀疏向量(Sparse) * 混合搜索:语义相似度 + 结构化过滤 * 随处运行:嵌入到应用进程内运行 1.2 技术栈 组件技术语言C++17构建系统CMakePython绑定Pybind11存储引擎RocksDB向量索引Proxima (IVF, HNSW, Flat)序列化Protobuf压缩LZ4位图CRoaring距离计算SIMD 加速 1.3

By Ne0inhk

Leetcode Editor github 仓库(idea leetcode插件安装)

Leetcode Editor 仓库介绍 Leetcode Editor 是一个适用于 JetBrains 系列 IDE 的插件,旨在帮助开发者在 IDE 内完成 LeetCode(支持 leetcode.com 和 leetcode.cn)的题目练习、调试和提交等操作。 核心功能 * 多平台支持:理论上支持 IntelliJ IDEA、PhpStorm、WebStorm、PyCharm 等多种 JetBrains 系 IDE 以及 Android Studio。 * 题目操作:可在 IDE 内查看、打开题目,支持提交代码、查看提交记录、运行代码及自定义测试用例。 * 本地调试:提供本地调试功能,方便开发者进行代码调试。 * 个性化配置:支持自定义代码模板、

By Ne0inhk
解决Markdown笔记图片失效问题:Gitee+PicGo图床搭建全攻略

解决Markdown笔记图片失效问题:Gitee+PicGo图床搭建全攻略

引言:为什么要解决搭建图床? 你是否遇到过这样的场景: * 用 Obsidian 写了半年的知识库,换电脑时发现 所有图片都变成 “破碎图标”; * 把 Markdown 笔记分享给同事,对方打开后 图片全是本地路径,根本看不到内容; * 尝试用云盘链接替代,却因为 “防盗链” 或 “链接过期”,图片还是无法正常显示…… 本地 Markdown 笔记的 “图片依赖本地路径”,是困扰无数创作者的痛点。而解决这个问题的核心,就是搭建一个 “图床” —— 把图片托管到云端,让链接永远有效。 本文将带你用 “Gitee(国内免费仓库)+ PicGo(自动上传工具)+ Node.js(运行环境)” 搭建图床,不仅解决 “图片失效”,还能实现: * ✔️ 国内访问快:Gitee 服务器在国内,无需科学上网,图片秒加载; * ✔️ 完全免费:Gitee

By Ne0inhk
ClawPanel — 开源 OpenClaw 智能管理面板,20+ 通道接入 / 多模型配置 / Docker 一键部署

ClawPanel — 开源 OpenClaw 智能管理面板,20+ 通道接入 / 多模型配置 / Docker 一键部署

🐾 一个比官方控制台更强大的 OpenClaw 可视化管理工具,支持 QQ、微信、Telegram、Discord 等 20+ 通道统一管理,多 AI 模型提供商配置,技能中心,版本管理,环境检测,Docker 一键部署。 📌 项目简介 ClawPanel 是一个基于 React + TypeScript + Express 的 OpenClaw 智能管理面板,旨在为 OpenClaw 用户提供一个比官方控制台更强大、更直观的可视化管理工具。 项目前身是 openclaw-im-manager(一个简单的 QQ 机器人管理后台),经过 4 个大版本迭代,现已进化为功能完整的 OpenClaw 全能管理面板。 GitHub 地址:https://github.com/zhaoxinyi02/ClawPanel

By Ne0inhk