git - jak usunąć pusty folder i wypchnąć tę zmianę?

Jak mogę usunąć pusty folder lokalnie, a także aby stało się to dla innych współpracowników, którzy współdzielą pilota za pomocą pull-push? Wiem, że foldery nie są "śledzone" w tym sensie przez git, ale pozostaje pytanie.

Np. przeniosłem plik do innego folderu i zatwierdziłem zmianę (przeniesienia).

Ale nie mogę git rm name folder jak dostaję " nie pasuje" git rmdir name nie istnieje.

Mogę zrobić git clean -f folder ale jak to się robi?

Mogę bezpośrednio rm Plik ale jak to zrobić, że usunięcie katalogu zrobić poprawnie i pchnął do repozytorium, a następnie do innych, gdy wyciągnąć tak, że ich istniejący folder zostanie usunięty?

Author: Michael Durrant, 2012-04-09

4 answers

Krótka odpowiedź: nie można wprowadzać zmian do katalogów (dodanych, usuniętych itp.) ponieważ Git nie śledzi katalogów samodzielnie.

Zgodnie z FAQ :

Obecnie konstrukcja indeksu git (staging area) pozwala na wyświetlanie tylko plików, a nikt na tyle kompetentny, aby wprowadzić zmianę zezwalającą na puste katalogi, nie troszczył się o tę sytuację na tyle, aby ją naprawić.

Katalogi są dodawane automatycznie podczas dodawania plików wewnątrz nich. Oznacza to, że katalogi nigdy nie muszą być dodawane do repozytorium i nie są śledzone samodzielnie.

Jeśli chodzi o Git, twój pusty katalog już nie istnieje.

Odkryłem, że przyzwyczajenie się do używania git clean -fd eliminuje potrzebę popychania usuwania katalogów. Jednak git clean może usunąć elementy, których nie chcesz usunąć (w tym nowe pliki, których jeszcze nie zrobiłeś), więc najpierw używam git clean -fdn, aby zobaczyć, co będzie usunięte, jeśli użyję komendy.

Wygląda na to, że możesz być zmuszony do rozmowy z innymi programistami, aby wyczyścić ten katalog.

 87
Author: Jake Greene,
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
2012-11-04 14:44:51
git add --all
git clean -f -d
git commit -m "trying to remove folders"
git push
 4
Author: Ekhtiar,
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-28 00:14:45

Nie można wypychać pustych folderów. Ale jeśli chcesz wyczyścić puste foldery w sklonowanym / lokalnym repo, Zatwierdź ostatnie zmiany.. Następnie po prostu usuń wszystkie pliki poza .folder git w Twojej lokalnej kopii. Następnie zresetuj wszystkie zmiany ponownie, Co odkłada wszystkie pliki, ale pozostawia puste katalogi, których nie śledzi.

 0
Author: Rich,
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-26 10:53:43

Nieco chwiejnym sposobem obejścia tego problemu jest utworzenie fałszywego pliku w katalogu, zatwierdzenie go, a następnie usunięcie. Usunięcie go spowoduje również usunięcie katalogu. Więc utwórz nazwę / fake.txt

git add name/fake.txt
git commit -m "message"
git rm name/fake.txt
git commit -m "message2"
 -6
Author: Graeme Hunter,
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
2014-07-29 15:04:02