Git 陆龟修改标志(图标覆盖)未更新

Git 陆龟修改标志(图标覆盖)未更新,git,tortoisegit,Git,Tortoisegit,我在一些代码中做了一个小改动,但TortoiseGit将其显示为modified(红色感叹号),尽管我已经提交、拉、推,但它仍然存在。我在这里该怎么办?我以前没有见过这个问题。我假设您使用的是tortoise git?我以前也遇到过这个问题,有时候按F5键可以修复它,有时候它只是在乌龟重新同步后消失 这是另一个可能的解决办法 当前的解决方法是使用Windows任务管理器杀死TGitCache.exe 除了@Andy提到的内容外,您还可以通过限制覆盖层必须监视的文件夹来加快覆盖层的工作速度 右键单

我在一些代码中做了一个小改动,但TortoiseGit将其显示为modified(红色感叹号),尽管我已经提交、拉、推,但它仍然存在。我在这里该怎么办?我以前没有见过这个问题。

我假设您使用的是tortoise git?我以前也遇到过这个问题,有时候按F5键可以修复它,有时候它只是在乌龟重新同步后消失

这是另一个可能的解决办法

当前的解决方法是使用Windows任务管理器杀死TGitCache.exe


除了@Andy提到的内容外,您还可以通过限制覆盖层必须监视的文件夹来加快覆盖层的工作速度

右键单击->乌龟->设置->图标覆盖

在这里输入include和exclude路径。我通常明确指出我的回购/工作副本:


请检查您的路径,看看是否匹配,以防万一

Some/Dir/SomeFile.ext
与windows相同

some/DIR/someFILE.EXT

但对于Git来说,它们位于不同的位置。这可以通过使用合适的外壳从顶部导航回来来解决。

Kill TGitCache.exe对我有效。。。。我把这作为一个答案,因为我没有足够的声誉点添加它作为一个评论。但希望进一步重申这是一个有效的解决方案。

当图标未更新时,可以使用以下“运行”命令快速终止图标覆盖缓存:


缓存进程应该自动重新启动。如果您注意到这种情况经常发生,甚至可以将其转换为桌面快捷方式。

我已经尝试过一种解决方法:

重命名存储库的目录,然后将其更改回原来的目录,就可以开始了


例如:MyComplexProject可以更改为MyComplexProject 1,然后再返回MyComplexProject。

以下内容对我有帮助:

  • 进入“状态缓存”下的“设置->图标覆盖”选项“无”
  • 刷新资源管理器F5
  • 返回并将缓存选项更改回“默认”

  • 我在Windows上也有同样的问题

    杀死TGitCache确实工作了几秒钟,但红色图标再次出现

    结果证明,该文件在本地被重命名(第一个字母由大写改为小写),但在Git中没有更改。Windows不区分大小写,但Git不区分大小写!因此,图标覆盖不再匹配。我确实通过删除特定文件并从Turtoise Git上下文菜单中选择“revert”找到了这个问题。在列表中,出现了两个文件,一个文件的首字母大写,另一个文件的首字母完全小写


    最后,从Git上下文菜单重命名该文件确实解决了我的问题。

    我认为这个问题发生在我身上是因为应用程序竞争Windows限制图标覆盖(我相信它最多允许15个)

    为了解决这个问题,我必须这样做:

  • 打开
    regedit
    并浏览到
    Computer\HKEY\u LOCAL\u MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
  • 通过在子键前面加空格,重新排列子键,使Otteroise*键位于顶部
  • 使用任务管理器重新启动Windows资源管理器

  • 另请参见:

    此处的任何其他选项都无法解决此问题。(我无法识别任何外壳发生变化的文件) 我很有信心,一切都按原样签入了,所以我只是删除了我的回购协议,然后再次签出了它。噗,又起作用了

    如果你没有信心(或者你只是不想冒险,最好是这样),重新命名你的回购文件夹,然后再次查看你的回购,然后你可以拉一个差异,看看两个回购文件夹之间是否有任何奇怪的缺失/更改。

    这可能会有帮助。。。
    我的驱动器号是B:并且覆盖图标不会更新。我把它改成了beyond C:,(我用的是M:),它开始工作了。看起来TGIT没有低于C的驱动器:

    我们解决这个问题的方法是将Git repos移动到映射的网络驱动器,从而更改驱动器号

    似乎需要设置TortoiseGit来监视网络驱动器-这不是默认行为

    因此,要解决这个问题,您需要:

    • 右键单击回购文件夹
    • 选择“乌龟”
    • 选择“设置”
    • 选择“图标覆盖”
    • 勾选“网络驱动器”

    工作完成了

    这是陆龟学的一个已知问题。它存在多年,显然永远不会被修复。我不知道这是否是因为陆龟开发者不愿意或不能这样做。(我以前也报告过,但现在找不到问题。)

    无论如何,我要做的就是解决这个问题:

    git gc --prune=all --quiet
    
    它删减了Git存储库,重新打包了所有这些单一对象文件,将
    .Git
    中的文件数量从数万个减少到20个以下,并可能提高Git操作的整体性能

    有时候Git会在提交后自己做一个轻量级的版本,但我在日常使用中很少看到这种情况发生。所以我自己做。这也是在备份系统之前要考虑的一个很重要的动作(见下文)。 为了简化,我在一个可访问的路径中创建了一个批处理文件
    git gcall.cmd
    ,该路径调用上面显示的命令。我几乎每次提交后都要运行它,2-3秒后图标会自动更新。没有杀人。刚醒来的陆龟要真正观察存储库并更新其状态要困难一些


    下面是一个PowerShell脚本,它在一组配置的目录中递归地运行此命令,以便在进行备份之前使用。它还可以定期运行,例如在夜间运行,以解决后台的过时图标问题

    gc-all-git.ps1:

    Write Host“必要时打包Git存储库…”
    函数Git Gc($path)
    {
    cd$路径
    
    git gc --prune=all --quiet
    
    @echo off
    cd /d "%~dp0"
    %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy unrestricted -File gc-all-git.ps1
    exit /b %errorlevel%