![Visual Studio 文件已复制到 GitHub 但在 .gitignore 中列出](https://linux22.com/image/1628262/Visual%20Studio%20%E6%96%87%E4%BB%B6%E5%B7%B2%E5%A4%8D%E5%88%B6%E5%88%B0%20GitHub%20%E4%BD%86%E5%9C%A8%20.gitignore%20%E4%B8%AD%E5%88%97%E5%87%BA.png)
当 .gitignore 文件列出文件时,我无法弄清楚在尝试阻止 Visual Studio 2019 Team Explorer 将文件复制到 GitHub 时我遗漏了什么。
我的 .gitignore 文件与 .git 目录位于同一目录中。它的全部内容如下:
# Binaries
/x64/
# VS log files
*.log
*.tlog
# Visual Studio files and folder
/.vs/
当我想要提交更改时,VS 显示以下内容:
我愿意不是想要提交 Tetris_Game.exe,也不想提交任何 .tlog 或 .log 文件,也不想提交 .vs 文件夹中的任何内容。但是,如您所见,这些文件和目录已列出以供提交。
我遗漏了什么非常明显的信息?
答案1
这是因为所有这些扩展名为 .exe、.tlog 和 .log 的文件也会出现在您的 git 存储库中。因此,对这些文件的任何更改都一定会被跟踪。
要使 .gitignore 按预期工作,请执行以下步骤,
- 删除所有您想要本地忽略的文件。
- 然后提交并推送。现在您的存储库和 .gitignore 文件处于一致状态。
- 重新启动 VS 并执行拉取。
- 构建您的解决方案/项目。
现在观察你的 git 更改窗口,这些文件不应该被列出,尽管它们在你的本地机器上生成。
答案2
/.vs/
和中的前导斜杠/x64/
表示这些是从文件系统根目录开始的绝对路径。
对于将 repo 拉到 C: 驱动器上任何位置的 Windows PC,您的 .gitignore 将忽略C:\.vs\
和中的文件C:\x64\
。
删除前导斜杠,保留 和.vs/
。x64/
然后
它们将被解释为相对于 .gitignore 文件的路径。