首页
关于
Search
1
git lg彩色显示日志
28 阅读
2
在 Ubuntu 22.04 LTS 中安装 Docker
19 阅读
3
CentOs/Ubuntu搭建上网x-ui
18 阅读
4
git使用多个源和多个分支
15 阅读
5
清理Windows臃肿程序
15 阅读
默认分类
网站搭建
Windows
Linux
Docker
OpenWrt
Hackintosh
Git
Python
Web开发
JavaScript
FFmpeg
Demo
工具
刷机
油猴脚本
Excel
Chrome Extension
登录
Search
标签搜索
Pandas
读取
时区
Chrome
centos8
求和
Nginx
Typecho
404
csv
国际站
询盘导出
油猴脚本
bbr
Ubuntu
远程桌面
日志
log
数据清洗
打印机
野生程序猿
累计撰写
153
篇文章
累计收到
0
条评论
首页
栏目
默认分类
网站搭建
Windows
Linux
Docker
OpenWrt
Hackintosh
Git
Python
Web开发
JavaScript
FFmpeg
Demo
工具
刷机
油猴脚本
Excel
Chrome Extension
页面
关于
搜索到
36
篇与
的结果
2025-12-18
深入理解 Git rebase:如何把“私有补丁”永久叠加在 dev 之上
Git 实战:持续合并 dev 更新,并让私有代码始终位于最后提交在实际开发中,我们经常会遇到这样一种场景:dev 分支在持续更新(主线开发)我们基于 dev 派生了一个 定制分支 / 魔改分支 / 私有功能分支该分支中存在 dev 分支永远不会合入的私有代码需求是:持续同步 dev 的最新更新,但始终保证私有代码位于提交历史的最后,不被 dev 覆盖这种需求在以下场景中非常常见:OEM 定制版本客户专用功能分支内部增强版 / 魔改版长期维护的补丁分支本文将介绍一种 Git 原生、稳定、可长期使用 的解决方案。一、问题本质分析我们先抽象一下分支结构:dev: A -- B -- C -- D \ feature: E -- F (私有代码)我们的目标是:dev 每增加新提交(D → E → F → G…)feature 能持续同步 dev同时满足:私有提交 始终在最末尾提交历史尽量保持线性、干净二、核心思路:把私有代码当成“补丁”Git 中有一个非常适合这个需求的命令:rebaserebase 的本质语义是:将一组提交重新应用到另一个基点之上因此我们可以把整个问题理解为:dev 是不断前进的“主线”私有代码是一组需要长期叠加在主线之上的“补丁”三、推荐方案:使用 rebase 固定私有提交在最后适用前提当前分支可以 rebase(个人分支 / 约定可改历史)私有代码与 dev 的修改边界相对清晰1️⃣ 拉取 dev 最新代码git fetch origin2️⃣ 找到 dev 与当前分支的分叉点git merge-base feature origin/dev该命令会输出一个 commit hash,记为:<BASE_COMMIT>它是 feature 与 dev 的最后一个公共祖先。3️⃣ 核心命令:将私有提交重放到 dev 之上git rebase --onto origin/dev <BASE_COMMIT> feature这条命令做了什么?等价于:将 feature 分支中从 <BASE_COMMIT> 之后的所有提交重新应用到 origin/dev 的最新提交之上4️⃣ rebase 后的分支结构dev: A -- B -- C -- D \ feature: E' -- F'📌 私有提交始终位于最后四、以后 dev 再更新,怎么同步?如果私有代码始终只存在于 feature 分支中,后续同步将非常简单:git checkout feature git fetch origin git rebase origin/devGit 会自动:先对齐最新的 dev再把你的私有提交 重新应用到最后五、冲突会发生在哪里?这是该方案的一个重要优势:冲突 只会发生在私有提交中dev → dev 的提交之间不会产生冲突冲突范围清晰、可控非常适合 长期维护型分支。六、注意事项(重要)⚠️ 1. rebase 会改写提交历史请确保:当前分支是个人维护分支或团队已明确约定该分支可以 rebase如果已经推送过远程,需要使用:git push --force-with-lease⚠️ 2. 私有代码应尽量拆分成独立提交建议实践:一个私有功能一个 commit不要把私有代码与 dev 修改混在同一个提交中这样可以:降低 rebase 冲突概率提高长期可维护性七、不能 rebase 的替代方案(补充)在以下场景中,rebase 可能不适用:多人同时在该分支协作分支已被下游依赖,不能改历史此时可以使用:merge + 固定“补丁提交”策略约定规则:feature 分支最后一个提交永远是私有补丁同步流程:git checkout feature git fetch origin git merge origin/dev如遇冲突,可优先保留当前分支:git checkout --ours . git commit缺点是:提交历史不够线性merge commit 较多但在受限条件下依然可用。八、进阶工程实践:私有代码独立分支模型在企业级项目中,常见如下结构:origin/dev | feature-base (仅同步 dev,不写私有代码) | feature-private (只包含私有功能)同步流程:git checkout feature-base git rebase origin/dev git checkout feature-private git rebase feature-base该模式适合:OEM / 客户定制长期多版本维护私有代码体量较大场景九、总结Git 完全可以做到:dev 持续更新私有代码永远位于最后提交历史清晰、冲突可控核心思想只有一句话:把私有代码当成“补丁”,用 rebase 永远叠加在 dev 之上如果你有需要,也可以把这套流程封装成脚本,实现 一键同步 dev,非常适合长期项目维护。
2025年12月18日
1 阅读
0 评论
0 点赞
2025-06-21
魔法上网VPS搭建命令
3XUI面板项目地址:https://github.com/mhsanaei/3x-uibash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)老王一键脚本项目地址:https://github.com/eooce/Sing-boxbash <(curl -Ls https://raw.githubusercontent.com/eooce/sing-box/main/sing-box.sh)优选IP脚本项目地址:https://github.com/byJoey/cfy安装依赖apt update && apt install -y jq curl coreutils grep sed一键脚本bash <(curl -l -s https://raw.githubusercontent.com/byJoey/cfy/main/cfy.sh)
2025年06月21日
6 阅读
0 评论
0 点赞
2025-03-03
Windows释放磁盘空间
深入解析Windows下的WinSxS目录:能否删除?如何安全清理?WinSxS(Windows Side-by-Side)目录是Windows系统的核心组件库,存放着系统更新、功能模块和版本兼容所需的文件。许多用户因其占用大量磁盘空间而试图手动删除它,但这是极其危险的操作!本文将详解其作用,并提供安全清理方法。一、为什么不能直接删除WinSxS?1. 系统依赖性强组件存储(Component Store):Windows更新、修复和功能启用(如.NET Framework、语言包)均依赖此目录。硬链接机制:目录中大部分文件是系统文件的“硬链接”(Hard Link),实际物理存储远小于显示的大小。直接删除会导致系统文件丢失、崩溃或无法启动。2. 权限与副作用权限限制:普通用户无权限删除系统保护文件,强行操作会触发错误。更新失效:删除后系统无法安装新更新或回滚旧版本。二、安全清理WinSxS的3种方法方法1:使用磁盘清理工具(推荐)1. 按 `Win + S` 搜索“磁盘清理”并打开。 2. 选择系统盘(通常是C盘),点击“确定”。 3. 点击“清理系统文件”,再次选择系统盘。 4. 勾选“Windows 更新清理”和“Service Pack 备份文件”。 5. 点击“确定”执行清理。方法 2:DISM 命令清理组件存储:: 以管理员身份运行CMD或PowerShell :: 分析可清理空间 DISM /Online /Cleanup-Image /AnalyzeComponentStore :: 执行清理(保留最近版本) DISM /Online /Cleanup-Image /StartComponentCleanup :: 彻底清理(删除所有旧版本,慎用!) DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase方法 3:存储感知自动清理(Windows 10/11)1. 打开 **设置 > 系统 > 存储**。 2. 启用“存储感知”,点击“配置存储感知”。 3. 设置自动清理计划(如每周一次)。 4. 勾选“删除临时文件”和“自动清理下载文件夹”。
2025年03月03日
1 阅读
0 评论
0 点赞
2024-06-30
Cloudflare CDN 全端口回源设置
搬运链接: https://blog.090227.xyz/p/CM19/1.安装x-ui面板(略)2.设置域名打开 CloudFlare, 选中你要使用的域名,以下例子使用google.com域名举例;2.1. 进入SSL/TLS > 概述 > SSL/TLS 加密模式为 完全2.2. 进入SSL/TLS > 边缘证书 > 关闭 始终使用 HTTPS 和 自动 HTTPS 重写2.3. 进入SSL/TLS > 源服务器 > 创建证书 将证书和密钥 复制出来!保存好!!!2.4. 进入DNS > 记录 添加2条 AAAA记录, xui.google.com和vmess.google.com,地址就填入你的小鸡IPv6即可 ,其中xui必须开启小黄云注意: vmess.google.com将会作为你VMess节点的伪装域名使用3. 登录X-ui面板,设置VMess节点打开 http://xui.google.com:2052, 填入你设置的X-ui面板用户名和密码后点击登录即可3.1. 添加节点VMess-ws noTLS节点协议: vmess端口: 随意 复制下来备用uuid: 复制下来备用传输协议: wsTLS: 关闭点击添加完成3.2. 添加节点VMess-ws-TLS节点协议: vmess端口: 随意 复制下来备用uuid: 将第3.1步复制下来的uuid粘贴在此处传输协议: wsTLS: 开启证书方式: certificate file content公钥内容: 填入第2.3步复制下来的证书内容密钥内容: 填入第2.3步复制下来的密钥内容点击添加完成4. 设置CF的Origin Rules回源规则打开 CloudFlare, 选中你要使用的域名4.1. 进入规则 > Origin Rules > 创建规则规则名称: noTLS字段: 主机名 > 等于 > vmess.google.com > And字段: SSL/HTTPS > 关闭 目标端口: 重写到 > 填入第3.1步复制下来的noTLS端口内容点击部署完成4.2. 进入规则 > Origin Rules > 创建规则规则名称: TLS字段: 主机名 > 等于 > vmess.google.com > And字段: SSL/HTTPS > 开启 目标端口: 重写到 > 填入第3.2步复制下来的TLS端口内容点击部署完成5. Clash配置- name: "VLESS-CF" type: vless server: www.visa.com port: 443 uuid: d7160694-3f5b-4679-ab3e-8df04a7a12a5 network: ws tls: true udp: false sni: vmess.google.com ws-opts: path: "/" headers: host: vmess.google.com
2024年06月30日
6 阅读
0 评论
0 点赞
2024-06-24
CF部署Vless
1.参考文章: https://v2rayssr.com/worker-vless.html 2.项目地址: https://github.com/cmliu/edgetunnel
2024年06月24日
3 阅读
0 评论
0 点赞
1
2
...
8