Mir ist bekannt, dass es ähnliche Probleme mit git gibt, die sich auf die Warnung "Verknüpfung kann nicht aufgehoben werden" beziehen, aber ich konnte sie nicht verwenden.
Der Hauptunterschied besteht darin, dass dies passiert ist, wenn ich mich in keiner Weise mit Submodulen befasst habe (ich habe mich noch nie mit ihnen befasst). Ich habe einen Zweig namens "Upgrade" erstellt, meine alten Framework-Dateien gelöscht und in die neuen kopiert. Ich habe git add -A verwendet und dann alles festgeschrieben. Als ich versuchte, den Trunk-Zweig auszuchecken, antwortete er mit den folgenden Fehlern:
warning: unable to unlink requirements/views/sk/index.php: Permission denied
warning: unable to unlink requirements/views/sv/index.php: Permission denied
warning: unable to unlink requirements/views/zh/index.php: Permission denied
warning: unable to unlink requirements/views/zh_cn/index.php: Permission denied
warning: unable to unlink requirements/views/zh_tw/index.php: Permission denied
...etc. Es gibt Hunderte von ihnen.
Zuerst dachte ich, dies sei einfach ein Berechtigungsproblem, und fügte dem gesamten Anforderungsverzeichnis rekursiv Gruppenschreibberechtigungen hinzu, aber es gab keine Änderung.
Bearbeiten: Wie in einer Antwort unten vorgeschlagen, habe ich versucht, dasselbe zu tun, aber alles andere geschlossen. Ich hatte nicht mehr Glück als zuvor.
Dieses Problem ist besonders schwächend, da ich nicht zum Trunk wechseln kann, um zur normalen Entwicklung zurückzukehren.
sudo chown -R username directory
Antworten:
Normalerweise sehe ich diese Art von Fehler, wenn ein Prozess das Handle dieser Dateien nicht freigibt.
Stellen Sie sicher, dass nichts ausgeführt wird, und versuchen Sie es erneut.
Hinweis: Dies kann auch mit der Art und Weise zusammenhängen, wie Git installiert wurde (unter Windows kann die Benutzerkontensteuerung Probleme verursachen, wenn msysgit in
C:\Program
oder installiert istC:\Program Files
, siehe " msysgit - sh.exe - fork: Berechtigung verweigert - Vista 64 Bit " und Kommentar 2 von Ausgabe 437 )Hinweis: Wie unten dargestellt , ist eine häufige andere Ursache des Problems das Problem mit den Rechten im Verzeichnis (falscher Eigentümer), nicht unbedingt in der Datei, deren Verknüpfung nicht aufgehoben werden kann.
quelle
git checkout -f master
Bei meiner ersten Begegnung mit diesem Fehler hatte mein Benutzer das Recht, in die Datei zu "schreiben", jedoch nicht in das enthaltende Verzeichnis. Überprüfen Sie die Berechtigungen des Verzeichnisses, das die Datei enthält.
quelle
"Verknüpfung aufheben" bedeutet in diesem Fall im Wesentlichen "Datei löschen".
Dieser Fehler wird nicht von git selbst verursacht. Sie sollten ähnliche Fehler beim manuellen Löschen dieser Dateien in einer Befehlszeile oder einem Datei-Explorer haben.
quelle
Sie haben keine Zugriffsberechtigung, möglicherweise weil Sie nicht der Eigentümer sind.
Beheben Sie das Problem, indem Sie den Eigentümer in sich selbst ändern:
quelle
Ich hatte das Problem mit einer default-settings.php-Datei in Drupal 7. In diesem Fall konnte ich sie nicht löschen oder zurücksetzen, wie @rtconner sagte. Ich hatte keine Anwendung oder irgendetwas, das diese Datei verwendete, und es wurde ein Berechtigungsfehler.
Ich
chmod 777 *
habe dem Ordner hinzugefügt und konnte ihn dann problemlos zurücksetzen.quelle
777
keinen Ordner. Dies hat mein Problem gelöst, aber ich habe es schnell wieder auf den Standardwert zurückgesetzt, nachdem es gelöst wurde. Vielen Dank!Sie können die Schreibberechtigungen ändern, um dies zu erledigen.
Dieser Befehl
'w'
erteilt Berechtigungen für alle Ordner im aktuellen Verzeichnis.quelle
Ich bin auf dieses Problem gestoßen, wenn ich "git repack" oder "git gc" auf meinen OS X-Computern ausgeführt habe, auch wenn ich git mit Administratorrechten ausgeführt habe, und habe es schließlich gelöst, nachdem ich auf diese Seite gestoßen bin: http://hints.macworld.com /comment.php?mode=view&cid=1734
Die Lösung besteht darin, ein Terminal zu öffnen, zu Ihrem Git-Repo zu wechseln, eine CD in den .git-Ordner zu verschieben und dann Folgendes zu tun:
Wenn dies das Problem war, funktionieren Ihre Git-Befehle danach wie gewohnt.
quelle
Für diejenigen, die Intellij verwenden , wie @rtconner sagte, wird dieses Problem nicht durch git verursacht. Da Ihre IDE gesperrt ist, können Git-Dateien die Verknüpfung nicht aufheben. Sie müssen also Ihre IDE schließen und dann versuchen, sie über die Befehlszeile zusammenzuführen (oder was auch immer Sie möchten).
quelle
Dies kann auch auftreten, wenn:
Sie haben einen Prozess in einem Docker-Container ausgeführt und:
Einige Dateien wurden durch diesen Prozess generiert und:
Das Ziel der Dateien wird als Volume auf dem Docker-Host bereitgestellt.
Sie werden
git
auf dem Docker-Host ausgeführt.Wenn dies der Fall ist, stellen Sie die Dateien bereit, die Sie festschreiben und ausführen möchten:
Dateien, die die oben genannten Kriterien erfüllen, wird Folgendes vorangestellt:
Sie gehören
root
und sind nicht beschreibbar, was nicht gut ist. So beheben Sie diesen Lauf:Eine sauberere Lösung wäre wahrscheinlich, die
--user
Option zu verwenden, siehe dies für Docker und dies für Docker Compose .quelle
In meinem Fall war es ein ":" - Zeichen in einem Ordnernamen, das das Auschecken des Git-Repos unter Windows verhinderte.
quelle
auf dem Terminal auf dem Mac mache ich das einfach
und dann
quelle
Ich hatte diesen Fehler in einer virtuellen Maschine (unter Ubuntu), als ich es versuchte
git reset --hard
.Das Update sollte einfach
git reset --hard
vom OS X-Hostcomputer ausgeführt werden.quelle
Keiner der anderen Vorschläge hat bei mir funktioniert, aber das hat funktioniert:
sudo git reflog expire --expire=now --all && sudo git gc --prune=now --aggressive
quelle
In meinem Fall befindet sich mein Windows-Verzeichnis im Dropbox-Ordner. Es ist kein Git-spezifisches Problem. Wenn gerade eine Datei (in diesem Fall die Sperrdatei) erstellt wurde, benötigt Dropbox eine weitere Sekunde, um die Synchronisierung durchzuführen. Während dieser Zeit wird die Datei von Dropbox verwendet, und Programme von Drittanbietern (in diesem Fall Git) können die Datei nicht löschen.
Meine Lösung besteht darin, Dropbox zu beenden und damit die Magie hinter den Kulissen der Dateisynchronisierung von Dropbox zu vermeiden.
quelle
Ich bin auf diesen Fehler gestoßen und er wird durch einen falschen "Eigentümer / eine falsche Gruppe" der Datei / des Ordners verursacht . Sie müssen Ihren Serveradministrator um Unterstützung bitten, um den "Eigentümer / die Gruppe" dieser Datei / dieses Ordners zu ändern und es erneut mit "git pull" zu versuchen. Oder wenn Sie ein Sudoer sind, zeigen Sie einfach "Ihren Besitzernamen / Ihren Gruppennamen" an und versuchen Sie erneut, Ihr Repository abzurufen. Probieren Sie es aus, es funktioniert 100% für mich!
quelle
Stellen Sie sicher, dass alle zugehörigen Prozesse oder Threads nicht ausgeführt werden, und führen Sie die Endaufgabe aus oder erzwingen Sie das Beenden nach Bedarf.
Stellen Sie sicher, dass Sie die Eigentumsberechtigung ändern.
quelle
Wenn dies unter Windows geschieht und Sie Tortoisegit verwenden , ist dies im Allgemeinen der Status-Cache von Tortoisegit . Töte diesen Prozess und er wird befreit.
quelle
git status
stattdessen einfach über die Befehlszeile.Ich musste nur den Benutzer von Ubuntu auf meinen tatsächlichen Benutzernamen umstellen, unter dem ich zuerst Sachen gemacht hatte. Das hat es behoben.
quelle
Für mich gelöst, indem mein Git-Client (GitExtensions) so eingestellt wurde, dass er immer im Admin-Modus ausgeführt wird.
quelle
Ich hatte dieses Problem während der Verwendung
IntelliJ
(14.1.3 Ultimate). Ich wollte Änderungen in einigen Dateien rückgängig machen.Gelöst durch Schließen
Git Bash
in einem anderen Fenster geöffnet - ein weiterer Wiederherstellungsversuch inIntelliJ
Arbeit.quelle
Ich bin auf diesen Fehler gestoßen, und ich glaube, das Problem war, dass ich beim Starten von Eclipse als Administrator ausgeführt und die Dateien erstellt habe. Daher gehörten sie Admin (was durch Ausführen von 'ls -la' im Ordner festgestellt wurde). Als ich später versuchte, die Dateien zu verstauen, ließ es mich nicht ("Dateien können nicht getrennt werden" und so weiter). Ein chmod für die Dateien zu machen war das Update für mich.
quelle
git gc hat bei mir gearbeitet (in einem neuen tab). Bekam das mit jeder Rebase. Vielen Dank http://www.saintsatplay.com/blog/2016/02/dealing-with-git-unlink-file-errors#.W4WWNZMzZZJ
quelle
Sie müssen lediglich Berechtigungen bereitstellen und den folgenden Befehl im Stammverzeichnis Ihres Projekts ausführen:
quelle
Ich hatte das gleiche Problem, ich habe nur wenige Alternativen ausprobiert, wie andere vorgeschlagen haben.
Wenn Sie dem Ordner .git jedoch die richtige Berechtigung erteilen, können Sie die Probleme beheben.
quelle
In meinem Fall wurde das Berechtigungsproblem durch Festlegen
www-data
als Eigentümer gelöst :quelle
Ich denke, es geht um Ihre Dateiberechtigung:
quelle