Jak usunąć katalog z repozytorium git?

Mam 2 katalogi w repozytorium GitHub. Chciałbym usunąć jedną z nich. Jak mogę to zrobić bez usuwania i ponownego tworzenia całego repozytorium?

Author: eirenaios, 2011-06-11

12 answers

Usuń katalog z git i local

Można sprawdzić 'master' z obu katalogów;

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

Usuń katalog z git, ale nie lokalny

Jak wspomniano w komentarzach, Zwykle chcesz usunąć ten katalog z Gita, ale nie usunąć go całkowicie z systemu plików (lokalnego)

W takim przypadku użyj:

git rm -r --cached myFolder
 1817
Author: karmakaze,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-19 19:23:35

Aby usunąć folder / Katalog tylko z repozytorium git, a nie z lokalnego wypróbuj 3 proste polecenia.


Kroki usuwania katalogu

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

Kroki, aby zignorować ten folder w następnym zatwierdzeniu

Aby zignorować ten folder z kolejnych commitów, należy utworzyć jeden plik w katalogu głównym o nazwie .gitignore i włóż do niego nazwę folderów. Możesz umieścić tyle, ile chcesz

.plik gitignore będzie wyglądał następująco to

/FolderName

Usuń katalog

 219
Author: eirenaios,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-03 12:03:28

Jeśli z jakiegoś powodu to, co powiedział karmakaze nie działa, możesz spróbować usunąć katalog, który chcesz usunąć (za pomocą przeglądarki systemu plików), wydając polecenie
git add -A
i wtedy
git commit -m 'deleting directory'
i wtedy
git push origin master.

 64
Author: cmcculloh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-06 08:30:42

Możesz spróbować tego: git rm -rf <directory_name>

Wymusi usunięcie katalogu.

 20
Author: Breen ho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-23 10:21:33

Jeśli usuniesz pliki z katalogu (z git rm, jak wyjaśniają Pozostałe odpowiedzi), wtedy katalog nie istnieje w git. Nie można zatwierdzić pustego katalogu ani go usunąć.

Jest to w przeciwieństwie do subversion, gdzie musisz jawnie svn rm emptyfolder/, i jest nawiasem mówiąc, dlaczego strona man dla Gita opisuje się jako "głupi content tracker"

Odpowiedź na "Jak dodać pusty katalog do repozytorium git" linki do FAQ na ten temat :

Obecnie projekt indeksu git (miejsce postoju) zezwala tylko na być na liście, a nikt wystarczająco kompetentny aby dokonać zmiany zezwalającej na puste katalogów dbał wystarczająco o ta sytuacja, aby to naprawić.

Katalogi są dodawane automatycznie podczas dodawania plików wewnątrz nich. Że jest, katalogi nigdy nie muszą być dodawane do repozytorium i nie są śledzone sami.

Możesz powiedzieć "git add <dir> " i to doda tam pliki.

Jeśli naprawdę potrzebujesz katalogu do istnieje w kasach należy utworzyć / align = "left" / .gitignore działa dobrze dla tego celu; można pozostawić puste, lub wpisz nazwy plików, które spodziewaj się, że pojawi się w katalogu.

 15
Author: dbr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:35

Przejdź do katalogu git i wpisz następujące polecenie: rm-rf Nazwa katalogu>

Po usunięciu katalogu zatwierdź zmiany przez: git commit-m "Twoja wiadomość o zatwierdzeniu"

Następnie po prostu wciśnij zmiany w zdalnym katalogu GIT: git push origin Nazwa gałęzi>

 5
Author: anky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-13 11:53:31

Zwykle używam git add --all do usuwania plików / folderów ze zdalnych repozytoriów

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

master może być zastąpiony przez dowolną inną gałąź repozytorium.

 4
Author: ettanany,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-05 15:41:41

Możesz usunąć folder lokalnie, a następnie wcisnąć, jak następuje:

git rm -r folder_name
git commit -m "your commit"
git push origin master
 3
Author: shrikant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-26 18:59:11

Możesz użyć Attlasian Source Tree (Windows) (https://www.atlassian.com/software/sourcetree/overview ). Wystarczy wybrać pliki z drzewa i nacisnąć przycisk "Usuń" u góry. Pliki zostaną usunięte z lokalnego repozytorium i lokalnej bazy danych git. Następnie Commit, a następnie push.

 2
Author: Sergey Groshev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-01 18:04:22

Jeden z moich kolegów zasugerował BFG Repo-Cleaner który moim zdaniem jest mocny. Jest to nie tylko usuwanie niechcianych danych, ale także czyszczenie repozytorium z powiązanych informacji o zatwierdzeniu.

 1
Author: thanh.h.le,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-16 14:28:00

Pierwsze polecenie git musi wiedzieć kim jesteś przed usunięciem czegokolwiek

  1. git init
  2. Git config user.name "someone"
  3. Git Config user.e-mail "[email protected]"
  4. git rm-R
  5. git commit-m "usuwanie katalogu"
  6. git push origin master
 1
Author: Zeus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-06 21:27:33

Aby dodać nowy katalog:

mkdir <YOUR-DIRECTORY>

Ale teraz Git nie jest świadomy tego nowego katalogu, ponieważ Git przechowuje ślady plików, a nie katalogów Katalog

git status

Git nie będzie świadomy zmian, które wprowadziliśmy, więc dodajemy ukryty plik .keep, aby uświadomić Git o nowej zmianie.

touch /YOUR-directory/.keep

Teraz, jeśli wciśniesz git status Git będzie wiedział o zmianach.

I jeśli chcesz usunąć katalog, powinieneś użyć tego polecenia.

rm -r <YOUR-DIRECTORY>

I jeśli sprawdziłeś używając git status, zobacz Katalog został usunięty.

 0
Author: Abo3atef,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-27 03:37:06