Ich habe eine kleine Änderung an einem Code vorgenommen, aber TortoiseGit zeigt ihn als geändert an (rotes Ausrufezeichen), obwohl ich festgeschrieben, gezogen, gedrückt habe, aber er bleibt. Was soll ich hier machen? Ich habe dieses Problem noch nicht gesehen.
git
tortoisegit
Buchhändler
quelle
quelle
Antworten:
Ich nehme an, Sie verwenden Schildkrötengit? Ich hatte das Problem schon einmal, manchmal wurde es durch Drücken von F5Fixes behoben , manchmal verschwindet es einfach, nachdem sich die Schildkröte neu synchronisiert hat.
Hier ist eine weitere mögliche Lösung Link .
quelle
Was mir geholfen hat, war Folgendes:
quelle
Kill TGitCache.exe funktioniert für mich. .... Ich habe dies als Antwort angegeben, weil ich nicht genügend Reputationspunkte habe, um es als Kommentar hinzuzufügen. Wollte aber weiter iterieren, dass es sich um eine funktionierende Lösung handelt.
quelle
Es gibt eine Problemumgehung, die ich versucht habe:
Benennen Sie das Verzeichnis des Repositorys um und ändern Sie es dann wieder, und Sie können loslegen!
Als Beispiel: MyComplexProject kann in MyComplexProject1 und dann wieder in MyComplexProject geändert werden .
quelle
Abgesehen von dem, was @Andy erwähnt hat, können Sie die Überlagerungen schneller arbeiten lassen, indem Sie die zu überwachenden Ordner einschränken.
Rechtsklick-> TortoiseGit -> Einstellungen -> Symbolüberlagerungen
Geben Sie hier Einschluss- und Ausschlusspfade ein. Normalerweise verweise ich ausdrücklich auf meine Repos / Arbeitskopien:
quelle
Bitte überprüfen Sie Ihren Pfad, um festzustellen, ob er für den Fall übereinstimmt.
ist das gleiche für Windows wie
Aber für Git sind sie an verschiedenen Orten. Dies wird behoben, indem Sie mit dem richtigen Gehäuse von oben nach hinten navigieren.
quelle
Ich hatte das gleiche Problem bei Windows.
Das Töten von TGitCache hat einige Sekunden lang funktioniert, aber das rote Symbol wurde erneut angezeigt.
Es stellte sich heraus, dass die Datei lokal umbenannt wurde (der erste Buchstabe wurde von Groß- in Kleinbuchstaben geändert), in Git jedoch nicht geändert wurde. Windows unterscheidet nicht zwischen Groß- und Kleinschreibung, Git jedoch! Die Symbolüberlagerung stimmte also nicht mehr überein. Ich habe dies herausgefunden, indem ich die spezifische Datei entfernt und "Zurücksetzen" aus dem Turtoise Git-Kontextmenü ausgewählt habe. In der Liste wurden zwei Dateien angezeigt, eine mit Großbuchstaben in Großbuchstaben und eine vollständig in Kleinbuchstaben.
Das endgültige Umbenennen der Datei aus dem Git-Kontextmenü hat das Problem für mich behoben.
quelle
Wenn die Symbole nicht aktualisiert werden, können Sie den Symbol-Overlay-Cache mit dem folgenden Befehl "Ausführen" schnell beenden:
Der Cache-Prozess sollte sich automatisch neu starten. Sie können dies sogar in eine Desktop-Verknüpfung verwandeln, wenn Sie feststellen, dass dies häufig vorkommt.
quelle
Keine der anderen Optionen hier könnte das Problem lösen. (Ich konnte keine Datei identifizieren, bei der sich das Gehäuse geändert hat.) Ich war ziemlich sicher, dass alles so eingecheckt wurde, wie es sein sollte, also habe ich einfach mein Repo gelöscht und es erneut ausgecheckt . Poof, funktioniert wieder.
Wenn Sie nicht so sicher sind (oder es einfach nicht riskieren möchten, wie es am besten ist), benennen Sie Ihren Repo-Ordner lokal um und überprüfen Sie Ihr Repo erneut. Dann können Sie einen Diff ziehen, um zu sehen, ob etwas Seltsames fehlt. zwischen den beiden Repo-Ordnern geändert.
quelle
Es ist ein bekanntes Problem in TortoiseGit. Es existiert seit Jahren und wird anscheinend nie repariert. Ich weiß nicht, ob es daran liegt, dass der TortoiseGit-Entwickler nicht bereit oder nicht in der Lage ist, dies zu tun. (Ich habe es auch schon einmal gemeldet, kann das Problem aber jetzt nicht mehr finden.)
Wie auch immer, ich tue Folgendes, um das Problem zu beheben:
Es beschneidet das Git-Repository, packt alle diese Einzelobjektdateien neu, reduziert die Anzahl der Dateien
.git
von bis zu Zehntausenden auf unter 20 und verbessert wahrscheinlich die Gesamtleistung von Git-Operationen.Manchmal macht Git nach einem Commit eine leichte Version davon alleine, aber ich habe dies in Jahren des täglichen Gebrauchs selten gesehen. Also mache ich es einfach selbst. Dies ist auch eine gute Maßnahme, die Sie in Betracht ziehen sollten, bevor Sie ein Backup des Systems erstellen (siehe unten).
Zur Vereinfachung habe ich eine Batchdatei
git-gcall.cmd
in einem zugänglichen Pfad erstellt, der den oben gezeigten Befehl aufruft. Ich muss es nach praktisch jedem Commit ausführen und nach 2-3 Sekunden aktualisieren sich die Symbole von selbst. Kein Mord beteiligt. Wachen Sie TortoiseGit nur etwas schwieriger auf, um das Repository tatsächlich zu beobachten und seinen Status zu aktualisieren.Hier ist ein PowerShell-Skript, das diesen Befehl in einer Reihe konfigurierter Verzeichnisse rekursiv ausführt, falls erforderlich, um ihn vor dem Erstellen einer Sicherung zu verwenden. Es kann auch regelmäßig ausgeführt werden, beispielsweise über Nacht, um dieses Problem mit veralteten Symbolen im Hintergrund zu beheben.
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
Nennen Sie es mit der üblichen erforderlichen Batch-Datei:
gc-all-git.cmd:
quelle
Ich denke, dieses Problem ist mir aufgrund von Anwendungen passiert, die um Windows-Limit-Symbol-Overlays konkurrieren (ich glaube, es erlaubt maximal 15).
Folgendes musste ich tun, um dieses Problem zu beheben:
regedit
und navigieren Sie zumComputer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
Schlüssel.Siehe auch: TortoiseGit zeigt keine Symbolüberlagerungen an
quelle
Die Lösung dieses Problems für uns war, dass wir unsere Git-Repos auf ein zugeordnetes Netzwerklaufwerk verschoben und so den Laufwerksbuchstaben geändert hatten.
Es scheint, dass TortoiseGit eingestellt werden muss, um Netzwerklaufwerke zu überwachen - dies ist nicht das Standardverhalten.
Um dieses Problem zu lösen, würden Sie:
Job erledigt.
quelle
Dies könnte helfen ... Mein Laufwerksbuchstabe war B: und die Überlagerungssymbole wurden nicht aktualisiert. Ich habe es auf jenseits von C: geändert (ich habe M :) verwendet und es hat angefangen zu funktionieren. Es sieht so aus, als würde TGIT nicht unter C fahren:
quelle
Nachdem ich mich darüber gewundert und so ziemlich alles ausprobiert hatte, gelang es mir, das Problem zu beheben, indem ich einfach eine einzelne Datei aus dem als geändert gekennzeichneten Verzeichnis löschte und sie dann aus dem TortoiseGit-Menü selbst zurücksetzte.
PS Ich habe vor und nach diesem Vorgang sichergestellt, dass die CRC64-Prüfsumme für das gesamte Verzeichnis identisch ist.
quelle
Ich bin mir nicht sicher, ob dies relevant ist.
Es sieht so aus, als ob TortoiseGit Cache-Probleme mit Datei- / Ordnerfällen hat.
In meinem Fall wurde die Überlagerung der Symbole nicht angezeigt, da die Ordner-Groß- / Kleinschreibung nicht mit der einmal erwarteten übereinstimmt
quelle