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

如何在Git Rebase时自动忽略编译构建文件夹及相关生成文件?

解决Laravel分支Rebase时自动生成文件的冲突问题

嘿,我太懂这种被一堆自动构建文件的冲突搞崩溃的感觉了!这些public/js、css、composer.lock还有mix-manifest.json都是工具自动生成的,完全没必要手动去解决它们的冲突,咱们直接用下面的方案搞定:

方案一:彻底移除这些文件的Git追踪(最推荐)

这些文件属于构建产物/依赖锁文件,本质上不应该被提交到Git仓库里——它们应该在部署或开发时通过命令重新生成,而不是跟着代码版本走。这么做一劳永逸,以后再也不会出现这类冲突:

  1. 先把当前ws分支的未提交修改暂存起来(如果有的话):
    git stash
    
  2. 打开项目根目录的.gitignore文件,添加以下内容,告诉Git忽略这些自动生成的文件:
    public/js/
    public/css/
    composer.lock
    public/mix-manifest.json
    
  3. 把这些文件从Git仓库中移除(本地文件会保留,只是不再被Git追踪):
    git rm -r --cached public/js public/css composer.lock public/mix-manifest.json
    
  4. 提交这个.gitignore的修改:
    git commit -m "忽略自动生成的构建产物与依赖锁文件"
    
  5. 现在重新执行rebase,这时候就不会有那些烦人的冲突了:
    git rebase master
    
  6. Rebase完成后,重新生成这些文件:
    composer install
    npm run prod # 开发环境可以用npm run dev
    

方案二:临时丢弃ws分支的自动文件修改(适合必须追踪这些文件的场景)

如果因为项目特殊要求,必须把这些文件留在Git仓库里,那咱们可以直接在rebase时用master分支的版本覆盖ws分支的,之后重新构建:

  1. 当rebase出现冲突时,执行以下命令,直接取master分支上这些文件的版本:
    git checkout master -- public/js public/css composer.lock public/mix-manifest.json
    
  2. 标记这些文件为冲突已解决:
    git add public/js public/css composer.lock public/mix-manifest.json
    
  3. 继续rebase流程:
    git rebase --continue
    
  4. 如果还有其他非自动文件的冲突,手动解决后重复步骤2-3;完成rebase后,重新生成最新的构建文件:
    composer install
    npm run prod
    

为什么会出现这些冲突?

简单来说:master和ws分支各自都执行过composer install或前端构建命令,导致这些自动生成的文件内容出现差异。因为这些文件不是人工编写的代码,所以它们的冲突完全没有手动解决的价值——直接重新生成就好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:51:58