You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git中如何阻止特定文件复制到新分支且合并时不删除原分支文件

解决branchB合回branchA时删除CI/CD配置文件的问题

方法一:修改CI配置,仅在branchA触发Actions(推荐)

不需要删除.github/workflows/ci-cd.yml,直接修改该文件的触发规则,让它只对branchA生效:

on:
  push:
    branches:
      - branchA  # 仅推送到branchA时触发
  pull_request:
    branches:
      - branchA  # 仅PR到branchA时触发

将修改提交到branchA后,再从branchA创建branchB。此时branchB保留该配置文件,但推送branchB不会触发Actions,合回branchA时也不会出现文件被删除的问题。

方法二:合并时指定保留branchA的文件版本

如果已经在branchB中删除了.github/workflows/ci-cd.yml,执行合并时使用以下命令强制保留branchA的文件:

# 切换到branchA
git checkout branchA
# 合并branchB,使用ours策略保留branchA的文件版本
git merge -X ours branchB

注意:这个策略会对所有合并冲突的文件生效,如果有其他文件需要手动处理冲突,需谨慎使用。

方法三:用.gitattributes配置永久合并规则

在branchA中创建或修改.gitattributes文件,添加以下内容:

.github/workflows/ci-cd.yml merge=ours

将该文件提交到branchA后,后续任何分支合并到branchA时,.github/workflows/ci-cd.yml都会自动保留branchA的版本,不会被其他分支的删除操作影响。这个方法适合长期需要保护该配置文件的场景。

内容的提问来源于stack exchange,提问作者Echo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 22:52:11