visual studio项目的.gitignore无效

visual studio项目的.gitignore无效,git,visual-studio,Git,Visual Studio,我使用的是标准的VisualStudio.gitignore文件,但Git for Windows仍然包含构建文件和其他内容。如何解决这个问题 Git忽略我正在使用的文件: VisualStudio会自动生成相同的内容 它的名称正确,并且位于正确的位置 当我输入git status命令时,它会显示构建文件 文件已被修改,这意味着在添加.gitignore文件(或明确添加)之前,这些文件已经在git存储库中,因此您现在不能再“忽略”对它们的更改 如果可能,只需重新开始,从头开始创建存储库,但现在

我使用的是标准的VisualStudio.gitignore文件,但Git for Windows仍然包含构建文件和其他内容。如何解决这个问题

Git忽略我正在使用的文件: VisualStudio会自动生成相同的内容

它的名称正确,并且位于正确的位置

当我输入git status命令时,它会显示构建文件


文件已被修改,这意味着在添加.gitignore文件(或明确添加)之前,这些文件已经在git存储库中,因此您现在不能再“忽略”对它们的更改

如果可能,只需重新开始,从头开始创建存储库,但现在进行第一次提交,只添加.gitignore文件(顺便说一句,这总是一个好主意),然后进行第二次提交,添加所有源文件;然后将忽略生成文件


或者,您可以使用交互式重定基来重写历史记录,方法是修改在其中添加这些文件的提交,并在以前的提交中添加.gitignore也不错。或者您可以使用分支过滤来清除这些文件的所有痕迹。可能还有其他选择。

对于我们来说,这种方法:

  • Check.gitignore文件-似乎正常(忽略bin/Debug文件夹内容)
  • 检查这些文件的GIT repo(bin/Debug文件夹内容)-它们在那里=>与ignore file不一致
  • 本地删除这些文件并提交和推送(使用.gitignore定义缩小GIT文件的范围)
  • (可选)重新启动Visual studio并执行Pull
  • 存储库和VS现在似乎处于一致状态

  • 可以停止跟踪任何签入文件的任何更改。您需要告诉git首先从其索引中删除文件,方法是在给定的存储库中调用以下命令
    >git rm--cached
    。然后更新
    .gitignore
    文件以排除该文件。最后提交文件的删除


    Source from.

    停止跟踪gitignore文件中的文件
    打开命令提示符并导航到包含解决方案文件(.sln)的目录,然后运行以下命令(前两个命令最后包含点):

    然后打开VisualStudio并同步回购协议。
    这似乎对我起了作用。我找到了git命令。

    我在.cache文件中遇到了这个问题,以下步骤为我解决了这个问题:

  • add.gitignore
  • 登台并付诸实施
  • 手动删除*.cache(在windows资源管理器中查找)
  • 刷新VS中的更改-团队资源管理器-更改
  • 撤消挂起的更改(基本假设,您已提交所有要保留的更改!)
  • *.cache文件不再列在更改中

  • HTH

    从VS Code 1.56.0开始,这对我来说非常有用,因为VS Code ignore文件尚未跟踪,但显示为已更新(文件旁边的绿色U):

    • .gitignore
      进行编辑以忽略源代码管理侧栏中列出的已更新文件
    • 右键单击要忽略的源代码管理侧边栏中的一个文件(在上一步中手动编码的更改应该已经覆盖了该文件),然后从上下文弹出菜单中选择
      Add to.gitignore
    • 这会导致VS代码重新读取.gitignore,并刷新源代码管理侧栏中已更改文件的列表
    • .gitignore
      中涵盖的所有以前未跟踪的显示为“已更新”的文件现在应该从源代码管理侧栏中删除
    最终解决 这个小把戏帮助了我。它删除缓存为“跟踪”的所有文件,然后基于.gitignore文件重新添加文件

    第一: 以递归方式删除(git-rm)缓存为被跟踪的所有文件(-r)

    git rm -r --cache
    
    然后: 将所有(git Add.)已更改/未计入缓存的文件添加回缓存;这将按原样重新添加文件,因此不需要“重新保存”文件,它们将从git更改中消失,而git更改将删除文件(以及由于第一个命令而删除的所有其他文件)-结果是“更改”或者git状态应该只包含现在将被.gitignore忽略的文件,如果这些文件不在.gitignore更改之前。

    git add .
    

    资源:

    这对我来说是一个长期的斗争,最后我有我的dll的安静,当我只想合并我的更改回到主

    dotnet核心项目的my.gitignore:
    ”
    \#文件类型
    *.cache
    *.dtbcache.v2
    *.dll
    *.pdb
    *.suo
    .suo
    *.testlog
    *.用户
    \#目录
    **/释放

    文件是否位于正确位置?“构建文件和其他东西”到底是什么?如果您在命令提示符或具有git访问权限的shell中cd到存储库,并执行
    git status
    操作,它是否也会显示文件?我们需要更多详细信息。请更新问题(太容易在评论中遗漏细节)。您是否定制了
    .gitignore
    ?没有被忽略的文件的(相对)路径是什么?命令行git显示了什么()?还请注意,该文件需要命名为
    .gitignore
    ,而不是
    VisualStudio.gitignore
    @stijn更新了我的问题此工作与从头开始重新创建repo的可能重复,这是一个疯狂的建议。这就是路。一旦删除gitignore,它在读取时可以正常工作。我不必重新启动VS。在更新我的.gitignore后,我只需转到我的解决方案并删除了我不希望GIT跟踪的文件,然后签入。。。工作得很好这太完美了!同步远程回购以使本地和远程一致对我来说是可行的。这应该是公认的答案-轻松解决问题此方法仅适用于回购没有重大历史记录的情况,因为创建新回购会丢失历史记录。请查看Honza P.的答案,而不是thi
    git add .
    
    "
    
    \# file types<br>
    *.cache<br>
    *.dtbcache.v2<br>
    *.dll<br>
    *.pdb<br>
    *.suo<br>
    .suo<br>
    *.testlog<br>
    *.user<br>
    
    \# directories<br>
    **/Release