Git合并开发分支到生产分支时如何忽略migration文件夹?
解决Flask Migrate分支合并时忽略migration文件夹的问题
方法1:合并过程中手动排除migration文件夹
你之前用git merge --no-commit只是暂停了提交,但migration文件夹的变更已经被暂存到本地了,需要手动撤销这些变更:
- 执行合并但不自动提交:
git merge --no-commit dev - 撤销migration文件夹的暂存变更并恢复为生产分支原状态:
git restore --staged migrations/ && git checkout HEAD -- migrations/ - 确认文件状态无误后提交合并:
git commit
方法2:配置.gitattributes实现永久自动忽略
如果每次合并都需要忽略migration文件夹,可通过配置让Git自动处理:
- 在项目根目录创建
.gitattributes文件,添加以下内容:
migrations/ merge=ours
- 将该文件提交到开发分支和生产分支:
git add .gitattributes && git commit -m "config migrations merge strategy"
之后再合并分支时,Git会自动保留当前分支(生产分支)的migration文件夹内容,完全忽略来自开发分支的相关变更。
方法3:合并前暂存开发分支的migration变更
如果开发分支中migration脚本是单独的提交,可先临时暂存这些变更再合并:
- 切换到开发分支:
git checkout dev - 暂存migration文件夹的变更:
git stash push -m "temp stash migrations" migrations/ - 切换到生产分支执行合并:
git checkout prod && git merge dev - 合并完成后切回开发分支恢复暂存的变更:
git checkout dev && git stash pop
内容的提问来源于stack exchange,提问作者Adegbite Ismail
相关产品推荐
相关产品推荐

