2

前言

有些时候我们不想将本地文件或文件夹提交到git远程仓库,这个时候我们怎么做呢?我们以前端项目中的config.js为例来说明。

操作

1、忽略本地文件
比如:远程仓库config.js

export default {
    host: 'http://baidu.com'
}

我本地的config.js

export default {
    host: 'http://localhost:8080'
}

现在我们使用命令git pull origin master的时候,会出现冲突,所以我们不想提交本地的config.js永远不同步远程仓库里面的config.js,我们可以如下操作:

git update-index --assume-unchanged config.js

update-index --assume-unchanged的作用就是忽略本地文件,这样我们add和commit的时候就不会提交到线上了。

2、获取线上更新
虽然我们成功忽略了config.js文件,但是有时候我们又想获取最新的配置内容,但又不想提交,这个时候我们可以使用下面操作命令:

// 解除本地忽略
git update-index --no-assume-unchanged config.js
// 暂存
git stash
// 拉取线上更新(这个时候把想要的配置复制下来)
git pull origin master
// 恢复本地配置(把上面的配置粘贴过来)
git stash apply
// 重新忽略
git update-index --assume-unchanged config.js
// 提交
git push origin develop

总结

1、忽略本地文件和文件夹很好的解决不想同步某些配置文件。
2、忽略本地文件夹

git update-index --assume-unchanged floder/ <忽略文件夹>
注意:忽略文件夹时。后面的斜杠‘/’一定要带上,否则会报错:fatal: Unable to mark file sessions

3、如果出现git fatal: Unable to mark file,说明你解决了冲突合并了代码没有commit,只要git commit然后再执行git update--index即可

引用

git错误解决:Your local changes to the following files would be overwritten by merge


Awbeci
3.1k 声望212 粉丝

Awbeci