git 错误:您对以下文件的本地更改将被覆盖到远程上未更改的文件

问题描述 投票:0回答:1

我们在项目中使用 VSCode,我们在服务器上进行了

.vscode/tasks.json
跟踪,只是为了确保每个人都使用相同的配置。

因为我想添加新任务(只为我),所以我用

skip-worktree
制作了这个文件
git update-index --skip-worktree .vscode/tasks.json

但是,即使这个文件只在远程提交了一次,当我们创建项目时,并且从未得到更新,当我尝试使用

Your local changes to the following files would be overwritten
合并或重新设置当前分支时,git 仍然会显示
main

为什么 git 想要覆盖该文件,即使它在远程上没有更改?有没有办法让 git 更聪明,只在必要时才尝试覆盖我的文件(通过将其显示为冲突)?

git git-merge git-rebase
1个回答
0
投票

我是项目存储库中包装脚本(构建、运行等)的大力支持者:我的所有项目都具有相同的脚本、相同的名称,无论采用何种技术。
这样,入门就更容易:克隆然后构建。

所有这些包装器脚本都调用

tools/init
脚本,该脚本可以(除其他外)将
.vscode/tasks.tpl.json
(为 Git 中的每个人维护的模板文件)复制到
.vscode/tasks.json
中,Git 通过
.gitignore
规则忽略该脚本,并且您可以随意修改:它没有版本控制。
下一个 init 调用将不会再次复制
.vscode/tasks.tpl.json
,因为
.vscode/tasks.json
已经存在。

第一次克隆存储库并调用构建或运行时,环境会被初始化,包括

.vscode/tasks.json

© www.soinside.com 2019 - 2024. All rights reserved.