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
相关产品推荐
相关产品推荐

