Miałem taką samą dokładną sytuację. Kiedy próbowałem git rm -r myFolder, zadziałało, ale również usunąłem wszystko z katalogu „MyFolder”. Musiałem przywrócić wszystko w katalogu „MyFolder”, a następnie zatwierdzić.
Justin
240
@Justin Aby tylko usunąć z git i pozostawić system plików bez git rm -r --cached myFolder
zmian
32
Komunikat o błędzie, który otrzymuję to: fatal: pathspec „katalog” nie pasuje do żadnego pliku.
user2441441,
3
@ user2441441 Ten błąd pojawiał się, gdy próbowałem usunąć folder / plik, który w ogóle nie został dodany do repo
lukeatdesignworks
3
git rm -r --cached directory/usuwa tylko ze śledzenia git, ale struktura repozytorium pozostaje.
Néstor
287
Aby usunąć folder / katalog tylko z repozytorium git, a nie z lokalnego, wypróbuj 3 proste polecenia.
Kroki, aby zignorować ten folder w kolejnych zatwierdzeniach
Aby zignorować ten folder od następnych zatwierdzeń, utwórz jeden plik w katalogu głównym o nazwie .gitignore
i umieść w nim nazwę tego folderu. Możesz umieścić tyle, ile chcesz
Konieczne będzie także wykonanie polecenia git rm -r --cached FolderName git commit -m „Usunięto folder z repozytorium” na drugim komputerze, a następnie pociągnięcie, aby zachować synchronizację.
Simon
1
Czy spowoduje to usunięcie katalogu od momentu dodania go do repozytorium do tej pory? A może po prostu usunąć katalog i ponownie uruchomić go w repozytorium .git?
alpha_989
1
Świetny! Pracujący!
BeingCoders,
2
Dobrze wyjaśniona, ładna odpowiedź
Rakshit Shah
1
dobra robota. Na moim komputerze trzeci krok nie działa. Ale działa, jeśli zostanie zmieniony na $ git push
Hong
82
Jeśli z jakiegoś powodu to, co powiedział karmakaze, nie działa, możesz spróbować usunąć katalog, którego chcesz użyć lub w przeglądarce systemu plików (np. W Eksploratorze plików Windows). Po usunięciu katalogu wydaj polecenie: git add -A
a potem git commit -m 'deleting directory'
i potem git push origin master.
spowoduje to również usunięcie z katalogu lokalnego
abdul rehman kk
18
Jeśli usuniesz pliki z katalogu (z git rmwyjaśnieniem innych odpowiedzi), katalog nie będzie już istniał, jeśli chodzi o git. Nie można zatwierdzić pustego katalogu ani go usunąć.
Jest to odmienne od subwersji, w której musisz to jawnie svn rm emptyfolder/, i nawiasem mówiąc, manstrona git opisuje siebie jako „głupie narzędzie do śledzenia treści”
Obecnie konstrukcja indeksu git (obszar przejściowy) pozwala tylko na wyświetlanie plików i nikt nie jest wystarczająco kompetentny, aby dokonać zmiany, aby zezwolić na puste katalogi, troszczył się wystarczająco o tę sytuację, aby to naprawić.
Katalogi są dodawane automatycznie podczas dodawania plików w nich zawartych. Oznacza to, że katalogi nigdy nie muszą być dodawane do repozytorium i same nie są śledzone.
Możesz powiedzieć „ git add <dir>”, a tam dodasz pliki.
Jeśli naprawdę potrzebujesz katalogu, aby istniał w kasach, powinieneś utworzyć w nim plik. .gitignore działa dobrze w tym celu; możesz pozostawić puste lub wpisać nazwy plików, które mają się pojawiać w katalogu.
chciałem usunąć pusty katalog (folder), który utworzyłem, git nie może go usunąć, po kilku badaniach dowiedziałem się, że Git nie śledzi pustych katalogów. Jeśli masz pusty katalog w swoim drzewie roboczym, powinieneś go po prostu usunąć
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 zatwierdź, a następnie pchnij.
To też robię. Ułatwiło to jednak przyswojenie poleceń git.
Micah Montoya
1
Jeden z moich współpracowników zasugerował BFG Repo-Cleaner, który uważam za potężny. Nie tylko usuwa niechciane dane, ale także czyści twoje repozytorium od powiązanych informacji zatwierdzających.
Odpowiedzi:
Usuń katalog z git i lokalnego
Możesz wyewidencjonować „master” w obu katalogach;
Usuń katalog z git, ale NIE lokalny
Jak wspomniano w komentarzach, zwykle chcesz usunąć ten katalog z git, ale nie usunąć go całkowicie z systemu plików (lokalny)
W takim przypadku użyj:
źródło
git rm -r myFolder
, zadziałało, ale również usunąłem wszystko z katalogu „MyFolder”. Musiałem przywrócić wszystko w katalogu „MyFolder”, a następnie zatwierdzić.git rm -r --cached myFolder
git rm -r --cached directory/
usuwa tylko ze śledzenia git, ale struktura repozytorium pozostaje.Aby usunąć folder / katalog tylko z repozytorium git, a nie z lokalnego, wypróbuj 3 proste polecenia.
Kroki, aby usunąć katalog
Kroki, aby zignorować ten folder w kolejnych zatwierdzeniach
Plik .gitignore będzie wyglądał następująco
źródło
Jeśli z jakiegoś powodu to, co powiedział karmakaze, nie działa, możesz spróbować usunąć katalog, którego chcesz użyć lub w przeglądarce systemu plików (np. W Eksploratorze plików Windows). Po usunięciu katalogu wydaj polecenie:
git add -A
a potem
git commit -m 'deleting directory'
i potem
git push origin master
.źródło
Możesz spróbować:
git rm -rf <directory_name>
Wymusi usunięcie katalogu.
źródło
Jeśli usuniesz pliki z katalogu (z
git rm
wyjaśnieniem innych odpowiedzi), katalog nie będzie już istniał, jeśli chodzi o git. Nie można zatwierdzić pustego katalogu ani go usunąć.Jest to odmienne od subwersji, w której musisz to jawnie
svn rm emptyfolder/
, i nawiasem mówiąc,man
strona git opisuje siebie jako „głupie narzędzie do śledzenia treści”Odpowiedź na temat „Jak dodać pusty katalog do repozytorium git” prowadzi do najczęściej zadawanych pytań na ten temat :
źródło
Już wcześniej zatwierdziłem ten folder i chcę go również usunąć z historii.
Zrobiłem następujące:
Dodaj folder do
.gitignore
:Usuń ze wszystkich zatwierdzeń:
usuń referencje ze starych zatwierdzeń:
Upewnij się, że wszystkie stare referencje zostały całkowicie usunięte
Wykonaj wyrzucanie elementów bezużytecznych
wprowadzać zmiany do repozytorium online:
Skończysz tutaj.
Ale możesz wykonać następujące czynności, aby przesłać wszystkie zmiany do wszystkich gałęzi za pomocą: Ale uważaj na to polecenie!
Następnie folder został usunięty z git, ale nie został usunięty z dysku lokalnego.
źródło
do usuwania pustych folderów
chciałem usunąć pusty katalog (folder), który utworzyłem, git nie może go usunąć, po kilku badaniach dowiedziałem się, że Git nie śledzi pustych katalogów. Jeśli masz pusty katalog w swoim drzewie roboczym, powinieneś go po prostu usunąć
Nie ma potrzeby angażowania Gita.
źródło
Przejdź do katalogu git, a następnie wpisz następującą komendę: rm -rf < Nazwa katalogu >
Po usunięciu katalogu zatwierdź zmiany przez: git commit -m „Twoja wiadomość zatwierdzenia”
Następnie po prostu wciśnij zmiany w zdalnym katalogu GIT: git push origin < Nazwa oddziału >
źródło
Możesz usunąć folder lokalnie, a następnie wypchnąć, wykonując następujące czynności:
źródło
Zwykle używam
git add --all
do usuwania plików / folderów ze zdalnych repozytoriówmaster
można zastąpić dowolną inną gałęzią repozytorium.źródło
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 zatwierdź, a następnie pchnij.
źródło
Jeden z moich współpracowników zasugerował BFG Repo-Cleaner, który uważam za potężny. Nie tylko usuwa niechciane dane, ale także czyści twoje repozytorium od powiązanych informacji zatwierdzających.
źródło
Aby dodać nowy katalog:
Ale teraz Git nie jest świadomy tego nowego katalogu, ponieważ Git śledzi pliki, a nie katalogi DIRECTORY
Git nie będzie świadomy wprowadzonej przez nas zmiany, więc dodajemy ukryty
.keep
plik, aby Git był świadomy tej nowej zmiany.Teraz, jeśli naciśniesz,
git status
Git będzie świadomy zmian.A jeśli chcesz usunąć katalog, powinieneś użyć tego polecenia.
A jeśli sprawdziłeś za pomocą
git status
, zobaczysz, że katalog został usunięty.źródło
Najpierw polecenie git musi wiedzieć, kim jesteś, zanim cokolwiek usuniesz
źródło
Kombinacja 2 odpowiedzi zadziałała dla mnie
jeśli nadal wyświetla się ostrzeżenie, usuń pliki ręcznie
źródło