Git Merge & Git Rebase
推荐
推荐
很多团队在拆分大型 Git 仓库时,都会遇到 submodule 和 subtree 的选择问题。本文围绕两种方案的实际维护体验展开分析,而不是只停留在命令层面对比。
作者认为,submodule 更符合“仓库独立治理”的设计目标,适合需要清晰边界、独立版本管理和长期维护的大型项目;而 subtree 虽然使用门槛更低、clone 更方便,但容易造成代码冗余和仓库持续膨胀。
文章比较有价值的地方在于,它没有单纯强调“哪种更简单”,而是从架构治理、团队协作和长期维护成本角度讨论问题,适合已经进入中大型工程阶段的团队参考。
如果你正在做 monorepo 拆分、多仓库治理,或者维护复杂依赖关系,这篇文章值得一读。
这篇文章详细介绍了 WebSocket 协议的工作原理,包括握手过程、数据帧格式以及如何在 C++ 和 C# 中实现 WebSocket 通信。作者提供了一个轻量级的 WebSocket 解析库,特点是仅包含一个头文件、逻辑清晰且不依赖特定的网络接口,方便集成。此外,文章还提供了一个在线的 WebSocket 模拟客户端,便于测试和理解 WebSocket 的通信过程。
适合人群:对网络编程感兴趣的开发者,尤其是使用 C++ 或 C# 进行服务器开发,并希望深入理解 WebSocket 协议及其实现的工程师。
相信大家都会遇到这种场景,即一台电脑上同时存在多个 Git 账号的情况。譬如,公司的项目使用 Gitlab 托管,而个人的项目使用 Github 托管,更不必说,云效、Gitee、码云、Coding 等形形色色的平台。在这种情况下,你需要为每个代码托管平台生成 SSH Key,然后将其对应的公钥复制到指定的位置。所以,如何让这些不同托管平台的 SSH Key 和平共处、互不影响呢?这就是今天这篇文章想要分享的冷知识。当然,对博主个人而言,最主要的目的,还是希望能将公司和个人两个身份区分开来,所以,下面以 Github 和 Gitlab 为例来展示具体的配置过程。
为什么要签名
GPG 可以对 Git commit 或 tag 进行签名,其它用户可以知道这个 commit 来源可信,也就是作者本人提交的代码。
在工作中,常常会容易遇到一台电脑用多个 Git 账号的场景,比如账号 company 账号是工作用的,而账号 personal 是自己个人用的。 由于 Git 本身并没有多账号的机制,导致我们在默认设置下无法很好的区分哪个仓库使用哪个账号。 同时,在某些众所周知的场景下,我们无法直接访问到 Github 仓库,需要走一层 proxy 来加速我们的代码拉取与推送速度, 本文将使用 SSH config 相对优雅的解决这些问题。
Git 帮助我跟踪内容的版本,并与开源社区进行协作。它是我存储工作成果、共享和讨论改进的重要工具。我主要使用的工具包括浏览器、用 OpenSSH 连接 Foreman 实例、用 Vim 编辑源文件,以及使用 Git 进行版本控制。
本文重点介绍在开始使用 Git 和为 Foreman 文档做贡献时经常遇到的挑战。适用于中级 Git 用户。
黑客在控制他人电脑窃取他人文件的同时,也会成为他人攻击的重点对象。例如,黑客下载被他人嵌入恶意木马的扫描工具,运行使用该扫描工具的时候其电脑就会被背后的“猎人”所控制。
本文,我们将从黑客开启的 Web 服务器入手,通过使用 ZoomEye 网络空间搜索引擎,成为黑客背后的“猎人”。
有代码就有漏洞,内核也不例外。内核漏洞是操作系统内核中的存在的安全漏洞,这些漏洞可能导致系统被恶意软件入侵或攻击者控制,并可能造成数据泄露、系统瘫痪等严重后果。例如:攻击者可能会利用内核漏洞来绕过系统安全保护,提升权限,从而获取用户敏感信息,或者在系统中安装恶意软件,损坏系统数据或瘫痪整个系统。著名漏洞“dirty cow”(脏牛漏洞)影响之广,从2007年到2018年之间的所有发行版都受其影响,让全世界数百万台设备暴露在威胁当中。
某T路由器固件的解压逻辑即将解压逻辑写入linux内核中,在内核系统启动过程中,会将要更新的文件系统解压出来,解压过程有自修改后的文件系统头和xxx_crc32_le等函数校验过程,所以想要直接使用binwalk之类的工具提取固件中的文件系统会失败,要想解压出文件系统需要绕过crc校验函数或者对xz工具中的crc32_fast.c中lzma_crc32函数进行修改。
在很多IOT设备中默认存在MQTT服务,这是一个值得关注的攻击面。本文对MQTT协议及其挖掘思路进行分析。