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?
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.
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
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.
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"
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