program tip

TortoiseGit 수정 된 기호 (아이콘 오버레이)가 업데이트되지 않음

radiobox 2020. 11. 13. 08:00
반응형

TortoiseGit 수정 된 기호 (아이콘 오버레이)가 업데이트되지 않음


일부 코드를 약간 변경했지만 TortoiseGit은 커밋하고, 당기고, 푸시했지만 수정 된 것으로 표시되지만 (빨간색 느낌표) 그대로 유지됩니다. 여기서 무엇을해야합니까? 이 문제는 전에 본 적이 없습니다.


나는 당신이 거북이 자식을 사용하고 있다고 가정하고 있습니까? 나는 이전에 문제가 있었지만 때로는 키를 눌러 문제를 F5해결하고 거북이가 자체적으로 다시 동기화 된 후 사라집니다.

다른 가능한 수정 링크가 있습니다.

현재 해결 방법은 Windows 작업 관리자로 TGitCache.exe를 종료하는 것입니다.


저에게 도움이 된 것은 다음과 같습니다.

  1. "설정-> 아이콘 오버레이"로 이동하십시오. "상태 캐시"에서 "없음"옵션을 선택하십시오.
  2. 탐색기 F5 새로 고침
  3. 돌아가서 캐시 옵션을 다시 "기본값"으로 변경하십시오.

내가 시도한 해결 방법이 있습니다.

저장소의 디렉토리 이름을 바꾼 다음 다시 변경하면됩니다!

예를 들어 : MyComplexProject는 변경 될 수 있습니다 MyComplexProject1 다시에 MyComplexProject .


Kill TGitCache.exe가 저에게 효과적입니다. .... 댓글로 추가 할 평판 포인트가 충분하지 않기 때문에 답변으로 넣었습니다. 그러나 그것이 작동하는 솔루션이라는 것을 더 반복하도록 돕고 싶었습니다.


@Andy가 언급 한 것 외에도 모니터링해야하는 폴더를 제한하여 오버레이가 더 빠르게 작동하도록 할 수 있습니다.

오른쪽 클릭-> TortoiseGit-> 설정-> 아이콘 오버레이

여기에 포함 및 제외 경로를 입력하십시오. 나는 일반적으로 내 저장소 / 작업 복사본을 명시 적으로 가리 킵니다.

여기에 이미지 설명 입력


경로가 일치하는지 확인하십시오.

Some/Dir/SomeFile.ext

Windows와 동일합니다.

some/DIR/someFILE.EXT

그러나 Git에게는 서로 다른 위치에 있습니다. 이 문제는 적절한 케이스를 사용하여 상단에서 뒤로 이동하면 해결됩니다.


아이콘이 업데이트되지 않을 때 다음 "실행"명령을 사용하여 아이콘 오버레이 캐시를 빠르게 종료 할 수 있습니다.

taskkill /f /im tgitcache.exe

캐시 프로세스는 자동으로 다시 시작됩니다. 자주 발생하는 경우이를 바탕 화면 바로 가기로 전환 할 수도 있습니다.


Windows에서도 같은 문제가 발생했습니다.

TGitCache를 죽이는 것은 몇 초 동안 작동했지만 빨간색 아이콘이 다시 나타났습니다.

파일 이름이 로컬에서 변경되었지만 (첫 글자가 대문자에서 소문자로 변경됨) Git에서는 변경되지 않았습니다. Windows는 대소 문자를 구분하지 않지만 Git은 그렇습니다! 따라서 아이콘 오버레이가 더 이상 일치하지 않습니다. 특정 파일을 제거하고 Turtoise Git 컨텍스트 메뉴에서 "되돌리기"를 선택하여이 사실을 알아 냈습니다. 목록에서 두 개의 파일이 나타 났는데, 하나는 첫 글자가 대문자이고 다른 하나는 완전한 소문자였습니다.

마지막으로 Git 컨텍스트 메뉴에서 파일 이름을 변경하면 문제가 해결되었습니다.


이 문제는 Windows 제한 아이콘 오버레이에 대해 경쟁하는 응용 프로그램으로 인해 발생했다고 생각합니다 (최대 15 개까지 허용한다고 생각합니다).

이 문제를 해결하기 위해 수행해야하는 작업입니다.

  1. regedit열고 찾습니다 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers.
  2. 공백을 접두사로하여 Tortoise * 키가 맨 위에있는 하위 키를 다시 정렬합니다.
  3. Restart Windows Explorer using Task Manager.

See also: TortoiseGit not showing icon overlays


It's a known issue in TortoiseGit. It exists for years and will apparently never be fixed. I don't know whether it's because the TortoiseGit developer is unwilling or unable to do it. (I've also reported it before but can't find the issue anymore now.)

Anyway, here's what I do to resolve it:

git gc --prune=all --quiet

It prunes the Git repository, repacking all those single object files, reducing the number of files in .git from up to tens of thousands to under 20, and probably improving the overall performance of Git operations.

Sometimes Git does a light version of that on its own after a commit, but I've rarely ever seen this happen in years of daily use. So I just do it myself. This is also a great action to consider before making a backup of the system (see below).

To make it easier, I've created a batch file git-gcall.cmd in an accessible path that calls the command shown above. I have to run it after virtually every single commit and after 2–3 seconds the icons update themselves. No killing involved. Just waking up TortoiseGit a bit harder to actually observe the repository and update its status.


Here's a PowerShell script that runs this command in a set of configured directories recursively, if necessary, for use before making a backup. It can also be run on a regular basis, for example over night, to resolve this outdated icons issue in the background.

gc-all-git.ps1:

Write-Host "Packing Git repositories where necessary..."

function Git-Gc($path)
{
    cd $path
    Get-ChildItem . -Recurse -Hidden .git | Foreach-Object {
        cd $_.FullName
        if ((Get-ChildItem objects -File -Recurse).Count -gt 50)
        {
            cd ../
            Write-Host $(Get-Location).Path
            git gc --prune=all --quiet
        }
    }
}

Git-Gc C:\Source
Git-Gc C:\xampp\htdocs

Call it with the usual required accompanying batch file:

gc-all-git.cmd:

@echo off
cd /d "%~dp0"
%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy unrestricted -File gc-all-git.ps1
exit /b %errorlevel%

None of the other options here could make the problem go away. (I wasn't able to identify any file that had a change in casing) I was pretty confident that everything was checked in as it should be so I just deleted my repo and checked it out again. Poof, works again.

If you're not as confident (or you just don't want to risk it, as is best), rename your repo folder lcoally and check out your repo again, then you can pull a diff to see if anything odd is missing/changed between the two repo folders.


This might help... My drive letter was B: and the overlay icons would not update. I changed it to beyond C:, (I used M:) and it started working. Looks like TGIT does not drives below C:


The thing that solved this issue for us was that we had moved our Git repos to a mapped network drive, thus changing the drive letter.

It seems that TortoiseGit needs to be set to monitor network drives - it is not the default behaviour.

So to solve this issue you would:

  • Right click a repo folder
  • Choose "TortoiseGit"
  • Choose "Settings"
  • Choose "Icon Overlays"
  • Tick "Network drives"

Job done.

참고 URL : https://stackoverflow.com/questions/8137929/tortoisegit-modified-sign-icon-overlay-is-not-updating

반응형