378 Stimmen

Versehentlich übertragene .idea-Verzeichnisdateien in Git

Ich habe versehentlich die .idea/ Verzeichnis in git. Dies verursacht Konflikte überall sonst muss ich meine Repo auschecken. Ich habe mich gefragt, wie ich diese Dateien aus der Remote entfernen?

Ich brauche diese Dateien immer noch lokal, da die Intellij IDE sie benötigt. Ich möchte sie nur nicht in der Fernsteuerung haben. Ich habe das Verzeichnis .idea/ zu meinem .gitignore und diese Datei in remote übertragen und verschoben. Dies scheint jedoch keine Auswirkungen auf den Checkout auf meinem anderen Rechner zu haben. Ich erhalte immer noch die Fehlermeldung:

error: The following untracked working tree files would be overwritten by checkout:
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/uiDesigner.xml
.idea/vcs.xml
.idea/workspace.xml

798voto

Tadeck Punkte 124697

Hinzufügen des Verzeichnisses .idea zur Liste der ignorierten Dateien

Fügen Sie es zunächst zu .gitignore damit sie nicht wieder versehentlich von Ihnen (oder jemand anderem) begangen wird:

.idea

Aus dem Repository entfernen

Zweitens: Entfernen Sie das Verzeichnis nur aus dem Repository, aber löschen Sie es nicht lokal. Um dies zu erreichen, tun Sie, was hier aufgeführt ist:

Entfernen einer Datei aus einem Git-Repository, ohne sie aus dem lokalen Dateisystem zu löschen

Senden Sie die Änderung an andere

Drittens: Übertragen Sie die .gitignore Datei und die Entfernung von .idea aus dem Repository. Danach pushen Sie es an die Remote(s).

Zusammenfassung

Der gesamte Prozess würde wie folgt aussehen:

$ echo '.idea' >> .gitignore
$ git rm -r --cached .idea
$ git add .gitignore
$ git commit -m '(some message stating you added .idea to ignored entries)'
$ git push

(optional können Sie die letzte Zeile durch git push some_remote , wobei some_remote ist der Name der Fernbedienung, an die Sie einen Push senden möchten)

114voto

Ricardo Souza Punkte 15402

Sie können es aus dem Projektarchiv entfernen und die Änderung übertragen.

git rm .idea/ -r --cached
git add -u .idea/
git commit -m "Removed the .idea folder"

Danach können Sie es auf die Fernsteuerung übertragen, und jedes weitere Auschecken/Klonen ist dann in Ordnung.

7voto

rahulnikhare Punkte 1238

Es ist besser, dies über den Master-Zweig durchzuführen.

Bearbeiten Sie die Datei .gitignore. Fügen Sie die folgende Zeile hinzu.

.idea

Entfernen Sie den Ordner .idea aus dem entfernten Repository mit dem unten stehenden Befehl.

git rm -r --cached .idea

Für weitere Informationen: Dateien aus einem Git-Repository entfernen, ohne sie tatsächlich zu löschen

Stufe .gitignore-Datei. Verwenden Sie den folgenden Befehl

git add .gitignore

Commit

git commit -m 'Removed .idea folder'

Drücken Sie auf die Fernbedienung

git push origin master

1voto

Wenn Sie nicht nach Git gepusht haben

git rm .idea/ -r --cached
git add -u .idea/
git commit -m "Removed the .idea folder"

wenn "git rm .idea/ -r --cached" den Fehler "fatal: pathspec '.idea' didn't match any files" auslöst und bereits ein Push nach Git mit .idea erfolgt.

git push origin --delete remoteBranchName
git add . //Everything is up to date
git commit -m "Removed the .idea folder" //Nothing to commit
git push origin remoteBranchName

0voto

Hossein Punkte 2342

Sie sollten eine .gitignore Datei zu Ihrem Projekt und fügen Sie /.idea dazu. Sie sollten jedes Verzeichnis / jede Datei in einer Zeile hinzufügen.

Wenn Sie eine bestehende .gitignore Datei, dann sollten Sie einfach eine neue Zeile in die Datei einfügen und dort /.idea in die neue Zeile.

Nach diesem Lauf git rm -r --cached .idea Befehl.

Wenn ein Fehler auftritt, können Sie Folgendes ausführen git rm -r -f --cached .idea Befehl. Nach allen Durchläufen git add . und dann git commit -m "Removed .idea directory and added a .gitignore file" und pushen Sie schließlich die Änderungen, indem Sie git push Befehl.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X