第一步:从 git 缓存中移除(仅本地)
bash
# skip-worktree(已被跟踪的文件,防止显示 M)
git update-index --skip-worktree mis-microservice/mis-microservice-impl/src/main/resources/application.yml
git update-index --skip-worktree mis-microservice/mis-microservice-impl/src/main/resources/bootstrap.yml
第二步:用 .git/info/exclude 代替 .gitignore
.git/info/exclude 是本地私有的忽略文件,永远不会被 git 提交到远程:
bash
echo "*.yml" >> .git/info/exclude
如果想拉取git上别人改动的yml :
bash
# 第一步:先取消 skip-worktree
git update-index --no-skip-worktree mis-microservice/mis-microservice-impl/src/main/resources/application.yml
# 第二步:拉取远程最新
git pull
# 第三步:手动 merge(如果你本地和队友都改了)
# 第四步:重新设回 skip-worktree
git update-index --skip-worktree mis-microservice/mis-microservice-impl/src/main/resources/application.yml
以后不管切什么分支,这三个文件在你本地都不会再被 git 跟踪了。想取消的时候:
bash
# 取消 skip-worktree(比如你要提交 yml 改动)
git update-index --no-skip-worktree mis-microservice/mis-microservice-impl/src/main/resources/application.yml
# 清空 exclude(如果不想忽略 yml 了)
sed -i '' '/^\*\.yml$/d' .git/info/exclude