Frage Wie entferne ich ein Verzeichnis aus dem Git Repository?


Ich habe 2 Verzeichnisse in meinem GitHub-Repository. Ich möchte einen von ihnen löschen. Wie kann ich das tun, ohne das gesamte Repository zu löschen und neu zu erstellen?


907
2018-06-10 23:54


Ursprung


Antworten:


Entferne das Verzeichnis von git und local

Sie könnten 'Master' mit beiden Verzeichnissen auschecken;

git rm -r one-of-the-directories
git commit -m "Remove duplicated directory"
git push origin <your-git-branch> (typically 'master', but not always)

Entfernen Sie das Verzeichnis von git, aber nicht lokal

Wie in den Kommentaren erwähnt, möchten Sie normalerweise dieses Verzeichnis aus git entfernen, aber nicht vollständig aus dem Dateisystem löschen (lokal)

In diesem Fall verwenden Sie:

git rm -r --cached myFolder

1771
2018-06-11 00:37



Um Ordner / Verzeichnis nur aus dem Git-Repository und nicht aus dem lokalen Verzeichnis zu entfernen, versuchen Sie 3 einfache Befehle.


Schritte zum Entfernen des Verzeichnisses

git rm -r --cached FolderName
git commit -m "Removed folder from repository"
git push origin master

Schritte, um diesen Ordner bei den nächsten Commits zu ignorieren

Um diesen Ordner bei den nächsten Commits zu ignorieren, wird eine Datei im Root-Verzeichnis erstellt .gitignore   und lege den Namen des Ordners hinein. Sie können so viele setzen wie Sie möchten

.gitignore Datei wird so aussehen

/FolderName

remove directory


209
2017-12-03 12:34



Wenn aus irgendeinem Grund das, was karmakaze gesagt hat, nicht funktioniert, können Sie versuchen, das zu löschende Verzeichnis zu löschen (über Ihren Dateisystem-Browser) und den Befehl ausgeben
git add -A 
und dann
git commit -m 'deleting directory' 
und dann
git push origin master.


63
2018-06-11 02:14



Sie können dies versuchen: git rm -rf <directory_name>

Es erzwingt das Löschen des Verzeichnisses.


19
2017-10-23 10:21



Wenn Sie die Dateien im Verzeichnis entfernen (mit git rm Wie die anderen Antworten erklären), existiert das Verzeichnis nicht mehr so ​​weit wie git betroffen ist. Sie können weder ein leeres Verzeichnis festschreiben noch eines entfernen.

Dies ist im Gegensatz zu Subversion, wo Sie explizit müssen svn rm emptyfolder/, und ist übrigens warum man Seite für Git beschreibt sich selbst als "der dumme Content-Tracker"

Eine Antwort auf "Wie füge ich ein leeres Verzeichnis zu einem Git-Repository hinzu" Links zum FAQ zu diesem Thema:

Derzeit das Design des Git-Index   (Staging-Bereich) erlaubt nur Dateien zu   aufgeführt sein, und niemand kompetent genug   um die Änderung zuzulassen, um leer zu lassen   Verzeichnisse hat sich genug um   diese Situation, um es zu beheben.

Verzeichnisse werden automatisch hinzugefügt   beim Hinzufügen von Dateien in ihnen. Das   Ist, müssen Verzeichnisse nie hinzugefügt werden   in das Repository und werden nicht verfolgt   alleine.

Sie können sagen "git add <dir>" und es   fügt Dateien dort hinzu.

Wenn Sie wirklich ein Verzeichnis benötigen   Existieren in Kassen, sollten Sie ein erstellen   Datei darin. .gitignore funktioniert gut für   dieser Zweck; du kannst es leer lassen,   oder füllen Sie die Namen der Dateien, die Sie   erwarte, im Verzeichnis zu erscheinen.


15
2017-08-06 09:01



Gehe in dein Git-Verzeichnis und gib den folgenden Befehl ein: rm -rf <Verzeichnisname>

Nach dem Löschen des Verzeichnisses übernehmen Sie die Änderungen durch: git commit -m "Deine Commit Nachricht"

Dann drücken Sie einfach die Änderungen auf dem Remote-GIT-Verzeichnis: git push origin <Zweigname>


4
2017-07-13 11:53



Ich benutze normalerweise git add --all um Dateien / Ordner aus Remote-Repositories zu entfernen

rm -r folder_name
git add --all
git commit -m "some comment"
git push origin master

master kann durch jeden anderen Zweig des Repositorys ersetzt werden.


4
2017-09-05 15:41



Sie können den Ordner lokal löschen und dann wie folgt drücken:

git rm -r folder_name
git commit -m "your commit"
git push origin master

3
2018-02-26 18:59



Sie können den Attlasian Source Tree (Windows) (https://www.atlassian.com/software/sourcetree/overview). Wählen Sie einfach Dateien aus der Baumstruktur aus und klicken Sie oben auf "Entfernen". Dateien werden aus dem lokalen Repository und der lokalen Git-Datenbank gelöscht. Dann Commit, dann drücken.


2
2017-09-01 18:04



Einer meiner Kollegen vorgeschlagen BFG Repo-Reiniger was ich für kraftvoll halte. Es löscht nicht nur unerwünschte Daten, sondern säubert auch Ihr Repository von allen zugehörigen Commit-Informationen.


1
2017-11-16 14:28