我们在项目中使用 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 更聪明,只在必要时才尝试覆盖我的文件(通过将其显示为冲突)?
我是项目存储库中包装脚本(构建、运行等)的大力支持者:我的所有项目都具有相同的脚本、相同的名称,无论采用何种技术。
这样,入门就更容易:克隆然后构建。
所有这些包装器脚本都调用
tools/init
脚本,该脚本可以(除其他外)将 .vscode/tasks.tpl.json
(为 Git 中的每个人维护的模板文件)复制到 .vscode/tasks.json
中,Git 通过 .gitignore
规则忽略该脚本,并且您可以随意修改:它没有版本控制。.vscode/tasks.tpl.json
,因为 .vscode/tasks.json
已经存在。
第一次克隆存储库并调用构建或运行时,环境会被初始化,包括
.vscode/tasks.json