Mam problem z dodaniem folderu i wszystkich jego podkatalogów do mojego repozytorium git. Zdałem sobie sprawę, że jest to bardzo popularne pytanie po zrobieniu google i wypróbowałem każdą sugestię bez powodzenia, w szczególności sugestię ze strony podręcznika git-add . Próbowałem nawet git add -A
bez powodzenia. Dla uproszczenia załóżmy, że zainicjowałem repozytorium git jako Dir1
. Następnie mam następującą strukturę katalogów plików.
Dir1/file1-1.txt
Dir1/file1-2.txt
Dir1/Dir2/file2-1.txt
Dir1/Dir2/Dir3/file3-1.txt
Moje prawdziwe pliki mają podkatalogi o głębokości od 5 do 6 poziomów, więc czy istnieje polecenie git, aby dodać wszystkie pliki z każdego podkatalogu do mojego repozytorium? W tej chwili, kiedy robię sugestię ze strony podręcznika git add Dir1/\*
, widzę Dir2
w moim repozytorium, ale pojawia się jako zielony folder i nie mogę go otworzyć, co prowadzi mnie do przekonania, że wszystkie pliki / foldery Dir2
nie otrzymały dodany. Każda pomoc byłaby bardzo mile widziana. Jestem nowym użytkownikiem git (mniej niż tydzień korzystania z niego), więc staraj się zachować instrukcje na poziomie początkującym.
źródło
git add
dowolnego katalogu jest automatycznie rekurencyjna. Korzystaniegit add .
z najwyższego poziomu repozytorium powinno dodać wszystko tam. Jeśli nie,.gitignore
jest w grze (lokalnie lub globalnie)..gitignore
? W jakiś sposób może Twoje katalogi są ignorowane.git status --ignored
?git add .
Musisz dodać jakiś plik w katalogach, aby git mógł je śledzić.Odpowiedzi:
Zrobić,
w katalogu głównym repozytorium. Doda wszystko. Jeśli to zrobisz
git add *
, doda tylko pliki, na które*
wskazuje. Pojedyncza kropka oznacza katalog.Jeśli twój katalog lub plik nie został dodany do git index / repo po powyższym poleceniu, pamiętaj, aby sprawdzić, czy jest on oznaczony jako ignorowany przez git w pliku .gitignore .
źródło
cd Dir1; git init; git add . ; git commit;
Nic więcej nie jest wymagane. Jeśli masz .gitignore ignoruje pliki w jakimś katalogu i nadal chcesz je dodać, musisz to zrobićgit add -f .
zamiastgit add .
.Proste rozwiązanie:
źródło
Możesz również napotkać problemy, jeśli sam podkatalog jest repozytorium git - tj. Ma katalog .git - sprawdź
ls -a
.Aby usunąć, przejdź do podkatalogu i
rm .git -rf
.źródło
Również walczyłem, ale poprawnie pisałem
git add -f ./JS/*
gdzie JS to nazwa mojego folderu zawierającego podfoldery i pliki
źródło
git add ./JS
to prawidłowe użycie. Doda wszystkie pliki w katalogu i wszystkie podkatalogi nadal dbające o ignorowane pliki.Nie mogę powiedzieć na pewno, czy tak jest, ale moim problemem wydawało się mieć pliki .gitignore w niektórych podkatalogach. Ponownie, nie mogę tego zagwarantować, ale wszystko działało po ich usunięciu.
źródło
Najprawdopodobniej plik .gitignore s są w grze. Zwróć uwagę, że pliki .gitignore mogą pojawiać się nie tylko na poziomie głównym repozytorium, ale także na dowolnym poziomie podrzędnym. Możesz spróbować tego na poziomie głównym, aby je znaleźć:
odnaleźć . -name „.gitignore”
a następnie przejrzyj wyniki, aby zobaczyć, co może przeszkadzać w dodaniu podkatalogów.
W grę mogą wchodzić również moduły podrzędne. Sprawdź, czy w katalogach nie ma plików „.gitmodules”.
źródło
Widziałem ten problem wcześniej, gdy (pod) folder, który próbowałem dodać, miał swoją nazwę zaczynającą się od „_Something_”
Usunąłem podkreślenia i zadziałało. Sprawdź, czy folder zawiera znaki, które mogą powodować problemy.
źródło