场景
git忽略某个文件的某行代码
解决前端合作开发时vue.config.js中target频繁更改导致冲突的问题
在使用vue cli创建的项目中,合作开发时可能跟不同的后端同事进行联调,导致提交代码时误提交vue.config.js中target的变动,造成其他同事拉取代码出现冲突的现象,此时按照以下步骤,利用git filter可以解决此类问题
1. 在命令行中分别运行以下两行代码,对git filter进行设置
git config --global filter.gitignore.clean "sed '/\/\/#gitignoreline_start/,/\/\/#gitignoreline_end/{/\/\/#gitignoreline_start/b;/\/\/#gitignoreline_end/b;d}'"
git config --global filter.gitignore.smudge cat
提示:
- 如果不想设置全局可以将global改为local, 但每次新仓库都需要重新设置。
- filter的名字gitignore可以换为自己想要的名字,但步骤2中的gitignore需要对应上
- 可以输入git config --global --list检查或者如下代码检查是否设置成功
git config --get filter.gitignore.clean
git config --get filter.gitignore.smudge
出现以下内容即表示git filter设置成功

2. 项目git仓库根目录添加.gitattributes文件,并添加以下内容,开启vue.config.js文件中的git filter功能
vue.config.js filter=gitignore
3. 使用,在//#gitignoreline_start 和 //#gitignoreline_start之间放需要Git进行忽略的代码
proxy: {
'/dev-api': {
target: 'http://10.114.14.65:8080', // 默认dev环境的地址,不要注释,两个target会进行属性覆盖,后者将会生效
// target: 'http://192.168.1.137:8080', // 同事A的后台
// target: 'http://192.168.1.220:8080', // 同事B的后台
// target:'http://127.0.0.1:8080', // 本机启动的后台
// 在gitignoreline_start和gitignoreline_end之间的代码在提交时将会被过滤删除
//#gitignoreline_start
target: 'http://192.168.1.137:8080', // 生效的target提交时git将会删除两者间的代码
//#gitignoreline_end
changeOrigin: true,
pathRewrite: {
'^/dev-api': '',
},
}
}
- 至此,target切换的问题就已经解决完毕。
- 合作开发时,vue.config.js文件中在
//#gitignoreline_start和//#gitignoreline_start之间的代码在提交时将进行删除操作从而获得隐身的超能力- 两者间的变动将不会被提交git仓库中,而本地仓库这两者间的target却存在
- 本文方法不局限于vue.config.js,可以有更广泛的使用场景
本文原创,转载请标注本文地址 https://blog.csdn.net/qq_33691002/article/details/115394097
通过设置gitfilter,避免在合作开发Vue项目时因vue.config.js中target频繁更改造成的提交冲突。在命令行配置gitfilter,创建.gitattributes文件并启用过滤功能,然后在目标代码段前加入特殊注释,使git在提交时忽略该段代码,确保只有本地保留target的切换记录。
2775

被折叠的 条评论
为什么被折叠?



