如何向 Git 社区提交代码(2)

本文以作者向Git社区提交一个拒绝克隆浅仓库(shallow repository)功能的真实案例,详细记录了从需求分析到代码审查的完整过程。文章重点展示了Git社区的代码审查机制,包括对提交信息格式、选项命名规范和测试覆盖度的严格要求,并分享了维护者对代码改进的详细建议。通过这个实例,读者可以了解Git开源社区的协作流程,以及如何根据反馈不断改进代码直至被接受的全过程。

Git

如何向 Git 社区提交代码

本文详细介绍了向Git社区贡献代码的完整流程,从获取源码到最终提交。作者以亲身经历分享了编译源码、编写代码、测试验证、更新文档和提交代码的关键步骤,特别强调了Git社区特有的代码规范、提交信息格式和邮件列表工作流程。文章还对比了传统命令行方式和GitGitGadget两种不同的代码提交方法,为希望参与Git这类国际化开源项目的开发者提供了实用指南。

Git

Git Hooks

Git 钩子 本文深入讲解Git钩子的工作原理及实际应用,包括pre-receive、update和post-receive三种服务端钩子的特点与用途。通过流程图和实例分析,展示了Git推送过程中钩子的触发顺序和环境变量的作用,为开发者提供自定义Git工作流的技术指南。

Git

Git 大文件存储

Git LFS 即 Git Large File Storage,Git 大文件存储 本文全面介绍Git LFS技术,详细讲解了其工作原理和实现机制。文章解释了Git LFS如何通过指针文件替代实际大文件、使用smudge和clean过滤器处理文件转换以及pre-push钩子实现大文件上传。包含完整的安装配置步骤、常用命令用法、文件追踪设置,以及如何处理新增大文件和导入历史文件的实用场景。

Git

Git debug 以及测试

在上一部分 Git 内部原理 中我们已经对 Git 的内部基本原理比较熟悉,如 Git 的工作区,Git 的数据对象等。 这一部分,我们从实际开发的角度上出发,看如何对 Git 进行 debug,进行性能分析,进而找出可以优化改进的点,然后如何编写可用测试用例,验证我们的任何改进,最后将修改补丁提交到上游社区。 本文介绍Git源码的调试与性能分析方法,重点讲解如何使用gprof和火焰图工具定位性能瓶颈。以实际案例展示性能分析过程,包括编译参数设置、函数调用时间分析和调用图解读,帮助开发者深入理解Git内部执行机制,为后续的代码优化和贡献提供必要的技术基础。

Git

GitOps: 一种 DevOps 的最佳实践

本文转载于:https://icloudnative.io/posts/what-is-gitops/ 作者: 米开朗基杨 本文全面介绍GitOps的概念、原理及其实践方法,深入探讨了GitOps与DevOps的关系与区别。文章首先从基础设施即代码(IaC)讲起,解释GitOps作为"IaC + Git + CI/CD"的组合,如何以Git仓库作为单一事实来源管理基础设施与应用。重点分析了GitOps的四大设计哲学:声明式、版本控制、自动应用变更和持续调谐。同时对比了Push与Pull两种部署模式的优缺点,详细说明基于Pull模式的GitOps如何提供更强大的安全保障、更一致的系统状态和更高的生产力。

Git

Design pattern in Gitlay(Git PRC service)

这篇文章源于偶然看到的一篇文章 # Golang 技巧之默认值设置的高阶玩法,它讲的是 GRPC 中的设计模式。而我没有研究过 GRPC 源码,看起来稍显陌生。但好在手头上有 Gitaly 源码,算是稍微熟悉它的源码,因此想看看这个项目里面是不是也应用到了前面文章里讲的高阶用法,简单搜索一下源码后,发现这种代码模式还挺多的,于是趁热记录了其中一小段阅读结果。 本文深入分析Gitaly源码中的函数选项模式(Functional Options Pattern),详细展示了如何通过闭包和可变参数实现灵活配置。以git-rev-list命令封装为例,讲解了从结构体定义、选项函数设计到具体实现的完整流程,展现了Go语言中优雅处理复杂参数和默认值的高级设计模式,对Go开发者构建可维护API提供了实用范例。

Golang

git bundle 格式及应用

git-bundle 文件是一种将 git objects 数据(git packfile)与仓库引用 refs 结合在一起的&...

Git

学习 Rust 的一些笔记

Rust 是一门偏底层的,安全的,高效的开源编程语言。 本文记录了作者学习Rust语言的笔记和心得,涵盖从工具链到语言特性的核心内容。首先介绍了rustup、cargo等基础工具的安装和使用方法;然后详细讲解了Rust的变量特性、数据类型和内存管理模型,包括不可变变量、栈与堆的区别、所有权系统等独特概念;最后总结了Rust借鉴其他语言的优点以及自身的创新特性。这篇文章为Rust初学者提供了简明扼要的入门指南和关键知识点概览。

Rust

认证(Authentication)和授权(Authorization)

梳理一下关于认证和授权的一些知识 本文全面讲解认证和授权的概念及其区别,包括身份与资源分离的意义。对LDAP协议进行深入介绍,包括其树状结构、基本模型和适用场景;详细分析OAuth2.0授权标准的四种授权模式及主体角色;并简述OIDC协议如何作为OAuth2.0的超集实现用户认证与资源授权的统一。适合开发者理解现代身份验证系统的基础架构。

Auth