J'ai fait un petit changement dans du code mais TortoiseGit le montre comme modifié (signe d'exclamation rouge) bien que j'aie commis, tiré, poussé, mais ça reste. Que dois-je faire ici? Je n'ai jamais vu ce problème auparavant.
Je suppose que vous utilisez du tortue git? J'ai déjà eu le problème, parfois en appuyant sur F5 le corrige d'autres fois, il disparaît juste après que la tortue se resynchronise.
Voici un autre correctif possible lien .
La solution de contournement actuelle consiste à tuer TGitCache.exe avec le gestionnaire de tâches Windows.
Ce qui m'a aidé, c'est ce qui suit:
Il y a une solution de contournement que j'ai essayée:
Renommez le répertoire du référentiel, puis changez-le et vous êtes prêt à partir!
Par exemple: MyComplexProject peut être changé en MyComplexProject1 puis revenir à MyComplexProject.
Kill TGitCache.exe fonctionne pour moi. .... Je mets cela comme une réponse parce que je n'ai pas assez de points de réputation pour l'ajouter en tant que commentaire. Mais je voulais aider à répéter qu'il s'agit d'une solution de travail.
Outre ce que @Andy a mentionné, vous pouvez accélérer le travail des superpositions en limitant les dossiers qu'il doit surveiller.
Clic droit -> TortoiseGit -> Paramètres -> Superpositions d'icônes
Entrez ici les chemins d'inclusion et d'exclusion. Je pointe généralement explicitement vers mes repos/copies de travail:
Lorsque les icônes ne sont pas mises à jour, vous pouvez rapidement tuer le cache de superposition d'icônes à l'aide de la commande "Exécuter" suivante:
taskkill /f /im tgitcache.exe
Le processus de cache doit redémarrer automatiquement. Vous pouvez même en faire un raccourci sur le bureau si vous remarquez que cela se produit fréquemment.
Veuillez vérifier votre chemin pour voir s'il correspond au cas où.
Some/Dir/SomeFile.ext
est la même pour les fenêtres que
some/DIR/someFILE.EXT
Mais pour Git, ils sont dans des endroits différents. Ceci est résolu en remontant par le haut avec le boîtier approprié.
J'ai eu le même problème sous Windows.
Tuer TGitCache a fonctionné pendant quelques secondes, mais l'icône rouge est à nouveau apparue.
Il s'est avéré que le fichier a été renommé (la première lettre a été changée de majuscule en minuscule) localement mais n'a pas été modifiée dans Git. Windows n'est pas sensible à la casse mais Git l'est! Ainsi, la superposition d'icônes ne correspondait plus. J'ai découvert cela en supprimant le fichier spécifique et en sélectionnant "revenir" dans le menu contextuel de Turtoise Git. Dans la liste, deux fichiers sont apparus, l'un avec la première lettre en majuscule, l'autre en minuscule.
Enfin, renommer le fichier à partir du menu contextuel Git a résolu le problème pour moi.
C'est un problème connu dans TortoiseGit. Il existe depuis des années et ne sera apparemment jamais réparé. Je ne sais pas si c'est parce que le développeur TortoiseGit ne veut pas ou ne peut pas le faire. (Je l'ai également signalé auparavant, mais je ne trouve plus le problème maintenant.)
Quoi qu'il en soit, voici ce que je fais pour le résoudre:
git gc --Prune=all --quiet
Il élague le référentiel Git, reconditionnant tous ces fichiers d'objet unique, réduisant le nombre de fichiers dans .git
allant de plusieurs dizaines de milliers à moins de 20 ans, et améliorant probablement les performances globales des opérations Git.
Parfois, Git fait une version légère de cela seul après un commit, mais j'ai rarement vu cela se produire pendant des années d'utilisation quotidienne. Je le fais donc moi-même. C'est également une excellente action à considérer avant de faire une sauvegarde du système (voir ci-dessous).
Pour vous faciliter la tâche, j'ai créé un fichier batch git-gcall.cmd
dans un chemin accessible qui appelle la commande ci-dessus. Je dois l'exécuter après pratiquement chaque commit et après 2 à 3 secondes, les icônes se mettent à jour. Aucun meurtre impliqué. Il suffit de réveiller TortoiseGit un peu plus difficile pour réellement observer le référentiel et mettre à jour son statut.
Voici un script PowerShell qui exécute cette commande dans un ensemble de répertoires configurés de manière récursive, si nécessaire, à utiliser avant de faire une sauvegarde. Il peut également être exécuté régulièrement, par exemple pendant la nuit, pour résoudre ce problème d'icônes obsolètes en arrière-plan.
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
Appelez-le avec le fichier batch d'accompagnement requis:
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%
Je pense que ce problème s'est produit pour moi en raison d'applications en concurrence pour les superpositions d'icônes de limite Windows (je crois qu'il autorise un maximum de 15).
Voici ce que je devais faire pour résoudre ce problème:
regedit
et accédez au Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
clé.Voir aussi: TortoiseGit ne montrant pas les superpositions d'icônes
La chose qui a résolu ce problème pour nous était que nous avions déplacé nos dépôts Git vers un lecteur réseau mappé, changeant ainsi la lettre du lecteur.
Il semble que TortoiseGit doive être configuré pour surveiller les lecteurs réseau - ce n'est pas le comportement par défaut.
Donc, pour résoudre ce problème, vous devez:
Travail accompli.
Aucune des autres options ici ne pourrait faire disparaître le problème. (Je n'ai pu identifier aucun fichier ayant changé de boîtier) J'étais assez confiant que tout a été archivé comme il se doit, donc j'ai juste supprimé mon dépôt et vérifié à nouvea. Poof, ça marche encore.
Si vous n'êtes pas aussi confiant (ou si vous ne voulez tout simplement pas le risquer, comme c'est le mieux), renommez votre dossier repo lcoally et vérifiez à nouveau votre repo, alors vous pouvez tirer un diff pour voir s'il manque quelque chose d'étrange/changé entre les deux dossiers de dépôt.
Cela pourrait aider ... Ma lettre de lecteur était B: et les icônes de superposition ne se mettaient pas à jour. Je l'ai changé au-delà de C :, (j'ai utilisé M :) et il a commencé à fonctionner. On dirait que TGIT ne conduit pas en dessous de C: