本文介绍了如何使用 `git subtree` 命令,将一个项目中的子目录完整迁移到另一个独立仓库,并保留其全部提交历史。
核心操作分为两步:首先,在源仓库使用 `git subtree split` 从指定子目录抽取历史,生成一个内容为该子目录的新分支;然后,在目标仓库通过 `git subtree add --prefix` 将此分支合并到指定目录下。
该方法解决了直接复制粘贴丢失历史的问题,能优雅地整合两条独立的Git历史线,确保代码的演进轨迹完整可追溯,是项目重构与代码整合的最佳实践。
分类: 技术实践
本文系统梳理了Python项目管理工具从`venv`、`conda`到新兴工具`uv`的演进。`venv`轻量原生,适合单人项目,但依赖管理能力有限。`conda`能管理Python及系统级依赖,是科学计算的利器,但部署相对笨重。而基于Rust的`uv`速度极快,通过`pyproject.toml`实现现代化的项目依赖管理与锁定,更适配团队协作与工程化需求。文章强调,`pyproject.toml`已成为现代Python项目的核心配置标准,统一了项目构建、依赖声明及工具配置。
为应对论文评审、开源贡献等场景需在同一机器配置两个Git身份:实名与匿名。本文推荐“全局实名+局部匿名”策略,即通过`git config --global`设置默认身份,再在特定仓库内用`git config`局部覆盖。同时,为匿名身份生成独立SSH密钥,并配置`~/.ssh/config`文件创建专属Host别名(如`github-anon`),最后在匿名项目中使用该别名设置远程地址,即可实现身份隔离与安全管理。该方法利用Git配置层级和SSH别名,清晰、安全地解决了多身份切换需求。
基于Go语言实现跳表 占个坑,写个博客记录一下Go语言实现跳表的经过,并对跳表数据结构做更深入的理解。 目前代码已编写完毕,本文代码详见GitHub仓库。
本文记录一次js动态生成cookie的反爬虫的解决过程。这个反爬卡住了我整整2天,在多次尝试之后终于成功爬取,遂将过程中踩的坑和经验记录一下。 ⚠️声明:本次爬虫仅仅是爬取网站上【公开】的【新闻公告】数据,其目的仅仅是为了制作一个自动订阅工具,无盈利目的和其他目的。同时,rss订阅器的请求频率非常低
前言:《云原生学习》系列主要记录从阿里云和CNCF联合推出的【云原生技术公开课】上学到的知识。 容器和镜像 容器出现背后的需求 如果我们有对进程或者说应用程序进行隔离的需求,在操作系统上我们会遇到这样的三个主要问题: 进程视角:进程能互相通信和可见。这意味着高级权限的进程可以攻击比其更低级的进程。
从一个需求说起 作为大学生,我们需要密切关注学校发布的最新信息,比如学校官网、学院官网、教务处、学工部、团委等等。这些平台经常更新通知,比如xxx项目的申请、xxx比赛的通知、学术讲座、xxx奖学金的评选等等。如果错过这些通知,我们可能会丢失重要的信息,甚至错过报名机会或活动时间。 尽管辅导员通知或
Github Action是自动化构建和自动化部署中一个非常好用的工具,准确来说,它是GitHub推出的一个“持续集成”的工具,可以通过构建一系列的工作流来完成项目的打包、发布或部署等。因为最近有一个项目需要用到Github Action,我快速上手后打算系统学习一下,顺便补一补一些软工的概念,特做
前言 软件开发是一门技术,更是一门艺术。在学习开发的过程中,不管是阅读书籍和博客,还是浏览一些框架和语言的底层源码,我们常常发现设计模式贯穿其中。例如,在HTTP框架中的拦截器(或中间件)的设计,就是典型的职责链设计模式;Java中常见的各种Builder就是典型的建造者设计模式。 然而,对于为什么
项目背景 在当今世界,以大模型为核心的AI技术的迅猛发展正遇上中国高等教育的数字化转型。握住了大模型的教育应用场景,就意味着掌握了教育数字化转型的“杀手锏” 我们团队成员在大学的学习中深刻地体会到:传统高等教育在课前、课时、课后的三个领域面临着诸多挑战,如知识孤岛、资料迷宫、评估耗时长等问题。基于此
1 / 3
下一页