Git合并时忽略文件的6种技巧

有几种方法可以在git merge时忽略特定文件的合并:

方法一:使用.gitattributes文件(推荐)

在项目根目录创建或编辑.gitattributes文件:

infostation.js merge=ours *.js merge=ours # 如果需要忽略所有js文件的合并

然后设置合并策略:

# 设置合并驱动 git config merge.ours.driver true # 或者设置全局 git config --global merge.ours.driver true

这样在合并时,指定的文件会保持当前分支的版本。

方法二:手动合并并排除文件

步骤1:合并但不提交

# 执行合并但不自动提交 git merge --no-commit --no-ff 目标分支

步骤2:恢复不想合并的文件

# 恢复 infostation.js 到当前分支的版本 git checkout HEAD -- infostation.js # 或者恢复到指定分支的版本 # git checkout 源分支 -- infostation.js

步骤3:提交合并

git commit -m "合并分支,排除 infostation.js"

方法三:使用合并后重置

# 1. 正常合并 git merge 目标分支 # 2. 恢复特定文件 git checkout HEAD~1 -- infostation.js # 3. 提交恢复 git add infostation.js git commit --amend # 修改最后一次提交

方法四:使用git merge+git checkout组合

# 1. 先保存当前文件的版本 git show HEAD:infostation.js > infostation.js.tmp # 2. 执行合并 git merge 目标分支 # 3. 恢复之前的版本 cat infostation.js.tmp > infostation.js git add infostation.js git commit -m "合并分支,保留原始 infostation.js" # 4. 清理临时文件 rm infostation.js.tmp

方法五:使用 Git Hooks(自动化)

创建.git/hooks/pre-commit.git/hooks/post-merge钩子脚本来自动恢复配置文件。

示例.git/hooks/post-merge

#!/bin/bash # 检查是否在合并中 if [ -f ".git/MERGE_HEAD" ]; then # 恢复配置文件到当前分支的默认值 if [ "$(git rev-parse --abbrev-ref HEAD)" = "develop" ]; then echo '// window.IPConfig = "http://1.95.59.38:8083"' > infostation.js elif [ "$(git rev-parse --abbrev-ref HEAD)" = "test" ]; then echo '// window.IPConfig = "http://1.95.205.197:8083"' > infostation.js fi git add infostation.js fi

设置脚本可执行:

chmod +x .git/hooks/post-merge

方法六:更好的解决方案 - 使用配置文件模板

更专业的方法是不在代码中硬编码配置,而是使用模板:

  1. 创建配置文件模板:

    // infostation.js.template window.IPConfig = "{{IP_CONFIG}}"
  2. 在构建或部署时生成实际配置:

    # 根据环境变量生成配置文件 sed "s/{{IP_CONFIG}}/$IP_CONFIG/" infostation.js.template > infostation.js
  3. 将模板加入版本控制,忽略实际配置文件:.gitignore

    infostation.js # 忽略实际配置文件 !infostation.js.template # 跟踪模板

快速别名方法

创建 Git 别名简化操作:

# 创建合并并排除特定文件的别名 git config --global alias.merge-exclude '!f() { git merge --no-commit --no-ff "$1" && git checkout HEAD -- infostation.js && git commit -m "合并 $1,排除配置文件"; }; f' # 使用别名 git merge-exclude 目标分支

针对你的具体情况

如果你的环境配置是:

  • 开发分支:使用开发服务器

  • 测试分支:使用测试服务器

建议使用.gitattributes方法(方法一),这样每个分支都能保持自己的配置,合并时不会相互覆盖。

.gitattributes文件示例:

# 合并时保留当前分支的版本 infostation.js merge=ours config/*.js merge=ours # 如果有更多配置文件

注意:.gitattributes文件需要提交到仓库,这样所有开发者都会使用相同的合并策略。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1125357.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在 Ubuntu 下载 Typora

1.下载 Typora 安装包 鱼香ROS_Typora 安装地址https://fishros.org.cn/forum/topic/23/%E5%AE%89%E8%A3%85typora%E6%9C%80%E5%90%8E%E7%9A%84%E5%85%8D%E8%B4%B9%E7%89%88 2.不解压,下载 Typora 首先找到压缩包下载地址,右键空白处选择在终端中打开&…

RK3588+kylin V10安装docker

检查内核是否支持docker 方法:工具分享:检测内核配置是否支持Docker等容器 (1)检查卸载老版本Docker sudo apt-get remove docker docker-engine docker.io containerd runc (2)安装Docker依赖 sudo apt-get install ca-certificates curl gnupg lsb…

ATL80.dll文件丢失找不到 打不开问题 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

atl110.dll文件丢失找不到 打不开问题 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

最新爆火6款免费AI论文神器!PaperTan一站式搞定选题降重

紧急预警:论文截止只剩72小时?这些AI工具能救你命! 凌晨3点的图书馆、满屏的文献标红、导师催改的第12条消息——如果你正在经历这些,现在就是你最后的急救机会!2024年最新爆火的6款免费AI论文工具,能帮你…

深度测评专科生必备9款AI论文平台:2026最新对比与推荐

深度测评专科生必备9款AI论文平台:2026最新对比与推荐 2026年专科生论文写作工具测评:为何需要一份权威榜单? 随着AI技术的不断进步,越来越多的专科生开始借助AI工具提升论文写作效率。然而,面对市场上五花八门的平台&…

Linux 命令行实战训练营(

Linux 命令行实战训练营(Linux Command Line Bootcamp)课程基本信息- 发布时间:2026年1月 - 格式与规格:MP4 格式 | 视频 1920x1080 分辨率 - 语言:英语 - 时长:28 节课(总计 4 小时 &#xff…

VisionPro二开之九点标定

VisionPro二开之九点标定 方式1: CogCalibNPointToNPointTool方式2 安装平移九点标定 using System; using System.Collections.Generic; using MathNet.Numerics.LinearAlgebra;namespace 平移标定的数学公式 {public class CoordinateCalibration{// 存储标定点对…

Design Fluid Viscous Dampers in SAP2000 and Peform3D

在 SAP2000 和 Perform3D 中设计粘滞流体阻尼器课程基本信息- 发布时间:2026年 - 格式与规格:MP4 格式 - 语言:英语 - 时长:1小时 - 大小:950 MB - 核心主题:基于 SAP2000 的实用抗震阻尼器建模、非线性分析…

2026新测!这几款款亲测有效的降ai率工具推荐,含手把手教你论文降ai,查重率从红变绿只需几分钟!

写论文最怕什么?不是卡在查重,而是AI率高得离谱。明明自己码了一万多字,检测报告一出来,红到眼晕。别急,我这篇就是给你准备的——从免费降ai率方法到收费工具实测,帮你彻底搞清楚怎么降低ai率、怎么用靠谱…

VisionPro之九点标定

VisionPro之九点标定

全网最全ai降ai方法:亲测能有效降低ai痕迹,论文降aigc从此不求人,导师看了都说好!

写论文最怕什么?不是卡在查重,而是AI率高得离谱。明明自己码了一万多字,检测报告一出来,红到眼晕。别急,我这篇就是给你准备的——从免费降ai率方法到收费工具实测,帮你彻底搞清楚怎么降低ai率、怎么用靠谱…

程序媛失业第七天

这是小红书上一位上海的Java程序员失业想转行的分享贴。 Java开发的就业市场正在经历结构性调整,竞争日益激烈 传统纯业务开发岗位(如仅完成增删改查业务的后端工程师)的需求,特别是入门级岗位,正显著萎缩。随着企业…

基于Python+Django的社区服务管理系统设计与实现

前言 🌞博主介绍:✌CSDN特邀作者、全栈领域优质创作者、10年IT从业经验、码云/掘金/知乎/B站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战,以及程序定制化开发、文档编写、答疑辅导等。✌…

终极降AI指南!这款能让你相见恨晚的论文降aigc神器,实测降ai效果立竿见影

写论文最怕什么?不是卡在查重,而是AI率高得离谱。明明自己码了一万多字,检测报告一出来,红到眼晕。别急,我这篇就是给你准备的——从免费降ai率方法到收费工具实测,帮你彻底搞清楚怎么降低ai率、怎么用靠谱…

【AI】各类型开源模型排行

开源翻译模型 Top5 截至 2025 年第四季度的公开评测与赛果,综合 WMT-25、TransBench 以及社区人工打分,开源翻译模型 Top5 如下(按“多语种平均 BLEURT COMET 人工分”排序,括号内为亮点语向):Tencent Hun…

论文jiangAI干货!4款aigc免费降重工具,亲测降低ai率的同时保留原意,让你的文章更有“人味”

写论文最怕什么?不是卡在查重,而是AI率高得离谱。明明自己码了一万多字,检测报告一出来,红到眼晕。别急,我这篇就是给你准备的——从免费降ai率方法到收费工具实测,帮你彻底搞清楚怎么降低ai率、怎么用靠谱…

吐血推荐9个AI论文网站,专科生毕业论文轻松搞定!

吐血推荐9个AI论文网站,专科生毕业论文轻松搞定! 1.「千笔」—— 一站式学术支持“专家”,从初稿到降重一步到位(推荐指数:★★★★★) 对于专科生而言,撰写一篇符合要求的毕业论文不仅需要扎实…

还在为AI率爆表发愁吗?这几款降ai率工具推荐,实测免费降低ai率只需三步,建议反复观看!

写论文最怕什么?不是卡在查重,而是AI率高得离谱。明明自己码了一万多字,检测报告一出来,红到眼晕。别急,我这篇就是给你准备的——从免费降ai率方法到收费工具实测,帮你彻底搞清楚怎么降低ai率、怎么用靠谱…