https://www.cnblogs.com/xuan52rock/p/13268872.html
https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#_merge_strategies
背景
每次合并代码的时候,最容易冲突的的就是vue.config.js和dist文件夹
其实我们的vue.config.js一般需要同步的是项目配置,但是我们冲突的往往是代理配置,每一次迭代都是不同的业务,代理都是不同的,导致每次进行代码合并的时候都会冲突,那如何可以避免这种冲突呢,永远保持最初的一份
解决方案
git有一个合并策略,文章是这么说的:
您还可以使用 Git 属性告诉 Git 对项目中的特定文件使用不同的合并策略。一个非常有用的选项是告诉 Git 在特定文件有冲突时不要尝试合并它们,而是使用你的合并而不是其他人的合并。
只需要两步:
第一步:
在项目里面添加文件.gitattributes
,内容如下:
// 置顶合并时你要忽略的文件名称,比如vue.config.js
vue.config.js merge=ours
第二步:
全局配置git
git config --global merge.ours.driver true
此时你再把其他分支的代码合并过来的时候,vue.config.js不会进行合并,仍旧保存的是你当前本地的这一份配置
升级一下
项目里面如果我们直接把vue.config.js忽略,肯定是不行的,因为有的时候,确实会出现修改项目配置的情况,并且需要整个项目统一,所以我们可以把代理配置作为一个文件导入,这样我们就可以合并忽略导入的js了
第一步:
新建js——devServer.js:
// let dataUrlDev = 'http://xxxx.com'
let dataUrlDev = 'http://xxxx.com'
module.exports = dataUrlDev
第二步:
在vue.config.js里面导入devServer.js
const dataUrlDev = require('./devServer');
// ...
module.exports = {
...
devServer: {
port: 8080,
open: false,
host: '0.0.0.0',
proxy: {
'/xxx': {
target: dataUrlDev,
changeOrigin: true
}
// ...
第三步:
修改.gitattributes
文件
devServer.js merge=ours
再往后,我们在进行分支合并的时候,就不会出现devServer文件相互覆盖的情况了
后续这种合并策略有什么优势,可以再挖掘一下