c# - Git忽略目录不适用于.vs目录
问题描述
我在让 git 忽略项目中的 .vs 隐藏目录时遇到问题。我有以下结构,我所有的项目文件都在 MyProject 目录中,其中还包括 .vs 目录,我试图忽略它。
root/.git
root/MyProject
root/.gitattributes
root/.gitignore
root/MyProject/.vs
我尝试将一堆忽略命令添加到 .gitignore 文件,但似乎没有一个有效。我试过使用
*.vs
*.vs/
*.vs/*
**/.vs
**/.vs*
**/.vs**
**/.vs/**
**/.vs/*
MyProject/*.vs
MyProject/*.vs/
MyProject/*.vs/*
MyProject/**/.vs
MyProject/**/.vs*
MyProject/**/.vs**
MyProject/**/.vs/**
MyProject/**/.vs/*
我只想忽略 .vs 文件中的所有文件。
请协助。
解决方案
.vs
应该做。以防万一:将东西添加到.gitignore
中,如果文件已经被跟踪,它将不起作用。它仅适用于未跟踪的文件。
现在,如果您已经在跟踪内容.vs
并且不想这样做,那么您可以使用两种方法:
git rm --cached .vs
这将摆脱 .vs 目录进行修订,它不会触及文件,因为您在工作树上拥有它们。这也意味着,例如,如果您想在一年内返回已包含这些文件的修订版之一,则您可能会覆盖当时拥有的文件内容,这可能会破坏所依赖的任何内容该元数据。
git filter-branch
或者filter-repo
这些是可以重写分支历史的工具,以便完全删除 .vs 目录。这就像拉大枪一样,不应该掉以轻心,因为这意味着覆盖历史……及其所有含义(超出此详细答案的范围)。以防万一,filter-branch 正在逐步淘汰,而 filter-repo 是一个仍然不在 git 中的脚本,如果我没记错的话。
推荐阅读
- c - 如何在 C 中读取和使用 file.txt
- spring-boot - 尝试使用spring form标签库在spring boot中从一个JSP文件夹移动到另一个JSP文件夹
- ruby - 尝试在 Watir 上设置 Edge 驱动程序时出现“无效参数:'name' 必须是字符串”
- vue.js - 如何在 nuxtjs 中使用 fancybox
- graphviz - Graphviz DOT 文件中的多个图形
- android - ESLint:App.js (22:21) 解析错误:意外的令牌,预期的“;”
- javascript - 将项目连接到列表时使浏览器窗口保持在同一点
- java - 使用 Chaquopy 将大数据数组从 Python 返回到 Java
- json - 无法在 React 本机应用程序中更新本地 json 文件
- python-3.x - 嵌入无法正常运行 Discord.py