Git 源码编译,冲突对比异常排查

Blender源码编译指南:如何用CMake和Git管理35G依赖库(2023最新版) 本文详细介绍了2023年最新版Blender源码编译指南,重点讲解如何使用CMake和Git高效管理超过35GB的依赖库。从环境准备、依赖管理到编译加速,提供了一系列实用技巧和优化策略,帮助开发者快速完成Blender的编译工作,特别适合需要进行定制化开发的团队参考。 阅读详情

怎么编译git:https://stackoverflow.com/questions/28848870/how-to-build-git-on-windows
支持rename的git源码: https://github.com/ZeroChiLi/git
支持rename的git.exe: https://download.youkuaiyun.com/download/l773575310/90373761

编译源码

  1. 下载源码:https://github.com/git-for-windows/git

  2. 下载编译工具:https://github.com/git-for-windows/git-sdk-64

  3. 打开git-sdk-64中工具git-bash.exe

    // 1.打开到源码工程
    // 2.make 编译工程,首次编译较久
    // 3.make install 生成可执行文件
    
    cd g:/git-main
    make
    make install
    
  4. 在git-sdk-64工具目录下找到生成的git.exe,比如我安装的目录C:\git-sdk-64\mingw64\bin

  5. 测试编译使用的git,可以改版本名称GIT-VERSION-GEN文件,编译安装后使用git version查看结果
    在这里插入图片描述
    在这里插入图片描述

  • 编译测试
# 测试用编译为的git.exe操作工程
git --git-dir=g:/m71_tw/.git --work-tree=g:/m71_tw merge remotes/origin/publish
git --git-dir=g:/m71_tw/.git --work-tree=g:/m71_tw cherry-pick 3796ae492f99d463ba7fee1a06bfd8d47d23e7fd
  • 完成后,备份并替换电脑原来的gitC:\Program Files\Git\mingw64\bin\git.exe

异常冲突排查

  • 合并版本或者pick提交时,有时会出现对比两个不是一回事的对象,其中一个规律就是两个分支中其中一个是不存在这个文件的(包括曾经存在,但删除了)。

  • merge冲突异常:
    在这里插入图片描述

    // merge 后冲突日志,本地不存在的cs文件提示冲突,
    CONFLICT (file location): client/Assets/Plugins/JSZX_tools/VXExplorer/Editor/PreviewWindow/ParticleSystemPreview/Editor/PreviewReimportListener.cs added in remotes/origin/publish inside a directory that was renamed in HEAD, suggesting it should perhaps be moved to client/Assets/JoyBoxSdk/Bean/PreviewReimportListener.cs.
    CONFLICT (file location): client/Assets/Plugins/JSZX_tools/VXExplorer/Editor/PreviewWindow/ParticleSystemPreview/Editor/PreviewReimportListener.cs.meta added in remotes/origin/publish inside a directory that was renamed in HEAD, suggesting it should perhaps be moved to client/Assets/JoyBoxSdk/Bean/PreviewReimportListener.cs.meta.
    
  • pick 冲突异常,导致pick不到实际要的prefab:
    在这里插入图片描述
    在这里插入图片描述

源码排查

在这里插入图片描述

find_renames方法模糊查rename

  • update_dir_rename_counts记录了需要rename的列表,打印日志发现就是这里把两个不关联的对象认为是rename了。merge-ort.c的find_renames函数。
    在这里插入图片描述

  • 结合上下文和GPT一下,了解到这个方法实际对两个分支,分别只有自己分支有的内容依次对比,看看哪两个对象更像,就认为他是改名了。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 关于目录的rename对比,是根据目录历史rename记录:
    在这里插入图片描述

    • 这里原始目录刚好有两文件在前面检查rename时,认为从client/Assets/Plugins/JSZX_tools/VXExplorer/Editor/PreviewWindow/ParticleSystemPreview/Editor/ 移动到了client/Assets/JoyBoxSdk/Bean/,所以认为是目录改名了。虽然也有rename到别的目录,但会算移到哪个目录数量最多,就认定最多的目录。

确认异常规律

  • 看日志full history,是本地存在过但delete了,远端分支还在且修改了。

在这里插入图片描述

修复后结果

  • 不要让git猜rename
    在这里插入图片描述
    在这里插入图片描述

  • 测试正常修改rename文件提交正常


rename开关

  • 似乎不支持git config merge.renames false 和git config diff.renames,但支持git config merge.directoryrenames

    在这里插入图片描述

  • 自己另外加上git config merge.renames false ,支持merge时候不检查rename


源码工程文件

  • 2.46.2 加上支持开关检查merge或pick 的rename检查:git config --global merge.renames false

  • C:\Program Files\Git\mingw64\bin\git.exe

Debian 7 安装 Git 实战指南:apt-get 与源码编译双路径 Git 是分布式版本控制的核心工具,其基础原理依赖对象存储、快照机制与分支模型,在资源受限的老旧系统中尤为考验环境适配能力。Debian 7(Wheezy)作为冻结于2013年的稳定发行版,软件源已归档至 archive.debian.org,原生仅提供 git-core 而非 git 包,且默认缺失 build-essential 等关键编译依赖。这种‘时间胶囊’式生态决定了:直接套用现代教程极易因 apt-get update 失败、GPG 密钥过期、libc6 版本冲突或 ARM 架构不兼容而中断。本 阅读详情

相关推荐

IDEA集成Git实战:从配置到冲突解决的完整指南

版本控制是团队协作开发的基石,Git作为最流行的分布式版本控制系统,其命令行操作虽然强大,但对初学者存在一定门槛。IntelliJ IDEA作为主流Java IDE,内置了图形化Git集成,将常见的提交、推送、分支管理、冲突解决等操作转化为可视化交互,显著提升开发效率。理解IDEA背后实际执行的Git命令,有助于诊断诸如Push被拒绝、分支合并冲突、Lombok注解处理异常等高频问题。本文从环境配置、SSH免密、日常Commit与Push流程,到Merge与Rebase的取舍、Stash暂存、Cherry-

weixin_34341117的博客 654

Git源码(Linus 版本)详解

git 最初版本的源码阅读

weixin_45651194的博客 3212

保姆级教程:用Git克隆DAPLink源码,一次搞定Keil工程生成与编译(附ARMCC v5编译器资源)

本文提供了一份详细的DAPLink开发环境搭建指南,涵盖从Git克隆源码到Keil工程生成与编译的全流程。特别针对Windows平台下的常见问题,如ARMCC v5编译器缺失、Git环境变量配置等,提供了实用解决方案,帮助开发者高效完成DAPLink固件编译工作。

weixin_42619742的博客 317

git源码安装

使用"wget"命令下载Git源码包,例如:"wget https://www.kernel.org/pub/software/scm/git/git-2.0.5.tar.gz"。改为:git :x:1001:1001:git version control:home/git:/usr/bin/git-shell。使用"tar"命令解压缩下载的源码包,例如:"tar xzf git-2.0.5.tar.gz"。注释##git:x:1001:1001::/home/git:/bash。进入分支master。

zwm_yy的博客 1289

Linux 离线安装 Git 三种方案:源码编译、离线包、便携二进制

在无法访问互联网的生产网段或安全隔离环境中,Linux 离线安装是运维与开发人员的基础技能。其原理在于提前在联网机上解析依赖树并打包,再通过 U 盘或跳板机摆渡到目标机,绕开网络限制。技术价值在于保障内网软件供应链的自主可控,避免因出网策略导致部署受阻。典型场景包括 CentOS/RHEL 老服务器、信创 ARM 平台、容器基础镜像等。针对 Linux 离线安装 Git,核心难点并非安装本身,而是目标机缺乏编译工具链、glibc 版本过低、缺少依赖包。因此需要根据目标机架构、发行版和 glibc 版本,在源

weixin_34414196的博客 436

OpenSSL编译指南:从源码构建到生产环境部署

OpenSSL作为现代互联网安全通信的基石,其加密算法库支撑着HTTPS、API加密等核心场景。理解SSL/TLS协议原理后,开发者常需通过源码编译实现特定优化,如硬件加速支持或嵌入式设备适配。本文以OpenSSL 1.1.1w为例,详解跨平台编译技术,涵盖Linux/Windows环境配置、性能调优参数解析及生产环境集成方案,特别针对IPv6支持和椭圆曲线优化等热词场景提供实践指导。通过源码级定制,可有效解决物联网设备资源受限、旧系统兼容性等工程难题。

weixin_34184561的博客 434

Git源码管理

当前最先进的分布式版本控制系统,作用于源代码管理,方便多人协同开发,便于版本控制。

种一棵树,最好的结果是十年前,其次是现在! 1324

【BlueZ】源码编译环境配置全指南:Linux桌面原生编译 + 嵌入式ARM交叉编译 + 定制裁剪与调试实战

本文深入解析BlueZ源码编译的全流程,重点解决嵌入式平台定制化落地的技术难点。文章首先分析为什么必须从源码编译BlueZ(版本滞后、功能裁剪、二次开发需求),详细讲解源码目录结构与编译产物对应关系。然后提供两大编译场景的完整指南:Linux桌面环境原生编译流程(依赖安装、configure参数详解、安装验证)和ARM平台交叉编译(依赖库层级处理、pkg-config配置、板端部署)。特别针对嵌入式场景提供了最小系统裁剪方案、静态编译技巧及全流程排错方法论。

byte轻骑兵的技术小窝 1万+

Git 最原始的开源版本代码解析

Git 的最初版本虽然简单,但已经奠定了其核心设计理念。通过对象数据库和索引机制,Git 实现了高效的版本控制功能。这个版本的代码虽然只有约 1000 行,但它展示了 Linus Torvalds 的天才设计和对简洁性的追求。

weixin_44727517的博客 876

MTK开发源码包从结构到调试:编译器环境搭建与常见问题排查

在嵌入式Android与BSP开发中,源码包的工程化能力直接影响需求落地效率。MTK平台作为主流移动与物联网方案,其源码包并非单一代码库,而是由内核、驱动、HAL、Framework等多层组成的可配置工程体系。理解这一分层原理,是进行驱动调试、硬件适配与系统裁剪的基础。技术价值在于,开发者能通过宏开关和目录定位精准修改功能,避免大范围无效改动。实际应用中,从摄像头Sensor点亮、手势唤醒到WiFi MAC异常,均需结合设备树、内核日志和NVRAM分区等机制排查。本文从MTK源码包的结构切入,梳理编译环境搭

weixin_33853794的博客 399

FactoryTool量产神器实战:5分钟搞定多块RK3568板卡并行烧录

本文详细介绍了使用瑞芯微FactoryTool对多块RK3568板卡进行高效并行烧录的实战指南。文章从硬件连接、驱动配置、软件操作到排错技巧,提供了一套完整的量产解决方案,重点阐述了如何利用该工具在5分钟内完成多设备固件烧录,并确保eMMC存储的写入稳定性与效率,大幅提升生产线吞吐量。

b0c1d2的博客 991

AUR一键安装AeroThemePlasma:11个Git包详解、源码安装冲突与字体配置一步到位

在 KDE Plasma 桌面上用 AUR 一键安装 AeroThemePlasma(下称 ATP),是当前 Arch Linux 用户获得 Windows 7 经典 Aero 玻璃体验的最简单方式。本文详解 ATP 在 AUR 中发布的 11 个 Git 包各自的作用、一条命令的安装流程、从源码安装迁移时常见的文件冲突解决办法,以及 Segoe UI 字体配置,帮你从零到完整桌面一步到位。 #

gitblog_00659的博客 274

OpenMythos深度解析

本文深入解析了kyegomez/OpenMythos项目如何从第一性原理重建Claude Mythos的核心架构。该项目并非直接复制Claude,而是基于公开论文和实验结果推测其可能的设计理念,构建了包含多模态注意力、深度推理引擎、知识检索模块等六大核心组件的模块化架构。重点剖析了分组查询注意力(GQA)的实现细节,展示了KV头扩展等关键技术。该项目已成为大模型开源社区最受关注的研究之一,为理解Claude的架构思想提供了有价值的参考。

Crown_22的博客 518

Buzz:免费离线语音转文字,本地快速生成带时间戳字幕

上周你拿到一个 40 分钟的访谈录音,对方只要求一件事:三天内交一份带时间戳的字幕稿。用 Buzz 这种离线语音转文字工具,整段音频在本机转成文字稿并导出 SRT,全程没有把文件传到任何云端。Buzz 基于 OpenAI 的 Whisper 模型,装在个人电脑上就能用,免费,转完直接导出。 ## Buzz 离线语音转文字的安装与启动 按系统挑一条路: - macOS:`brew instal

gitblog_00430的博客 954

(三) Debian 安装linuxcnc-ethercat中间件

1.在这里同样的也是需要下载一下依赖包 sudo apt install linuxcnc-uspace-dev 2.依赖包安装完成, 接着执行下面命令 sudo git clone https://github.com/sittner/linuxcnc-ethercat 还是可能出现下载网络错误下载不成功,可以直接下载我已上传百度云linuxcnc目录下 注意一下,后面make可能会出现头文件(xxx.h)的报错提示,在这里给大家一个处理办法 用aptitude 工具可以搞定 sudo apt-get

qq_30065813的博客 828

SpringBoot+Flowable 6.8.0实战:5分钟搞定免登录流程图设计器

本文详细介绍了如何通过SpringBoot与Flowable 6.8.0深度整合,快速实现免登录流程图设计器的集成方案。通过排除默认安全配置、自定义安全策略和用户模拟服务,开发者可在5分钟内完成设计器的部署,适用于快速原型开发和企业内部工具搭建。

weixin_29204205的博客 280

Debian 8 安装 Git 2.30.6:源码编译与安全配置实战

Git 是分布式版本控制系统的事实标准,其核心原理基于快照存储、分支即指针、本地完整仓库等设计,赋予开发者离线操作、原子提交和高效协作能力。在老旧但稳定的 Debian 8 系统中,因官方源已归档、GPG 密钥失效、glibc 版本受限(2.19)等约束,直接 apt 安装 Git 2.1.4 不仅功能缺失(如 git worktree、sparse-checkout),更存在 CVE-2018-17485 等高危漏洞。本文聚焦于在冻结生态下构建可信工具链:通过切换 http 存档源、手动导入 Jessie

weixin_34378767的博客 399

具身智能(26):RDK S100的LeRobot或Agile X piper机械臂控制模型

本文档详细介绍了基于ROS2的机器人控制模型架构与标定数据联动机制。核心采用"感知-规划-控制"闭环流程,通过激光雷达、相机和IMU的融合数据实现厘米级定位(≤1cm)。文档包含两大控制模型配置:1)RDKLeRobot模型,重点说明PID参数调节和标定文件路径设置;2)AgileXPiper模型,强调驱动安装与外部标定文件集成。针对常见问题提供解决方案,如控制指令无响应需验证标定路径,运动偏差过大需重新标定等。最后给出批量部署方案,通过复制基准配置文件实现多机器人快速配置,要求定位偏差

码农17年的博客 179

从源码编译安装Git:深度定制与生产环境部署实战指南

在Linux系统管理和软件开发中,源码编译安装是获取软件最新版本、实现深度定制和确保环境一致性的核心技术手段。其原理是通过配置、编译和安装源代码,绕过系统包管理器的版本限制,直接生成符合特定需求的二进制程序。这项技术的核心价值在于提供了对软件构建过程、功能模块和依赖库的完全掌控,尤其适用于需要特定功能、最新特性或严格环境控制的生产服务器与容器化部署场景。通过源码编译,开发者可以针对性能、安全或兼容性进行优化,例如集成特定的加密库或调整运行时路径。本文以分布式版本控制系统Git为例,详细拆解了从环境准备、依赖

weixin_28831399的博客 277

2025华为od机试真题B卷【版本管理】Python实现

在 软件版本管理中,版本号由点分割的数字组成,例如 1.2.3 和 2.8。现在,你需要编写一个函数,计算两个版本号之间的可用版本号个数。这里的可用版本号指的是所有满足 version1<x<version2的版本号x的个数。若 version1 >=version2 返回0.,

MISAYAONE的博客 644

古风仙侠少女三视图提示词,一键生成角色设定

3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。平视正交视角,统一光照,纯白背景,无文字无水印,避免强透视和动态变形。3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。少女,古风仙侠少女气质,灵动、温婉、仙气。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 1058

Ubuntu 14.04 安装 Git:源修复、编译与配置全指南

Git 是分布式版本控制的核心工具,其运行依赖于操作系统包管理机制、C 工具链及基础库支持。在 Ubuntu 14.04 这类已结束生命周期(EOL)的 LTS 系统中,apt 源失效、build-essential 缺失、libpcre3 隐式依赖未满足等问题,会直接导致 git 命令不可用或运行异常。理解 apt 源迁移至 old-releases.ubuntu.com 的原理,掌握 build-essential 作为编译基石的作用,是实现 Git 可靠部署的前提。该方案广泛适用于嵌入式开发、遗留系统

weixin_34062469的博客 383

C#上位机实战:手把手搭智慧工业数字孪生系统,从设备建模到实时联动全落地

字段长度(字节)说明起始标识2固定为0xAA55,用于判断数据包开始设备ID4唯一标识设备(比如1001代表电机1)数据类型10=布尔(启停),1=浮点数(转速/温度)数据长度4数据字节数(布尔1字节,浮点数4字节)数据内容N实际数据(按数据长度读取)校验位1前面所有字节的异或校验,防止数据篡改结束标识2固定为0x55AA,用于判断数据包结束。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 968

nginx-autoinstall常见问题排查:编译失败的5个解决技巧

nginx-autoinstall 是一款在 Debian 和 Ubuntu 上从源码一键编译安装 Nginx 的开源脚本,支持 Stable/Mainline 版本、数十种可选模块与补丁。不少新手第一次使用时,都会在编译环节遇到报错中断。本文总结了 nginx-autoinstall 编译失败的 5 个高频原因与对应解决技巧,帮你快速定位问题、顺利完成 Nginx 源码编译安装。 > 💡 通

gitblog_00081的博客 683

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

PX4 Gazebo 9 仿真环境 3 大常见报错排查:从源码编译到 ROS 通信的完整解决方案

本文详细解析PX4 Gazebo 9仿真环境中三大常见报错问题,包括Gazebo启动异常、源码编译失败和ROS通信中断,提供从源码编译到ROS通信的完整解决方案。针对无人机仿真环境中的典型故障,给出系统化的排查方法和优化建议,帮助开发者快速定位和解决问题。

weixin_33748818的博客 403

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

上一篇: Unity DOTS 介绍和应用
下一篇: ZLogger 高性能日志库
ChiLi_Lin
博客等级 码龄12年 760粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值