Myślę, że to powinno działać, aby skopiować katalog, aby zostać zmieniona do nowego katalogu z żądaną nazwę i usunąć stary katalog , i git add
, git commit
i push
wszystko. Ale czy to najlepszy sposób?
Myślę, że to powinno działać, aby skopiować katalog, aby zostać zmieniona do nowego katalogu z żądaną nazwę i usunąć stary katalog , i git add
, git commit
i push
wszystko. Ale czy to najlepszy sposób?
Odpowiedzi:
Podstawowa zmiana nazwy (lub przeniesienie):
git mv <old name> <new name>
Rozróżniana jest wielkość liter - np. od casesensitive
do CaseSensitive
- musisz wykonać dwa kroki:
git mv casesensitive tmp
git mv tmp CaseSensitive
( Więcej o rozróżnianiu wielkości liter w Git… )
… A następnie zatwierdzenie i wypchnięcie byłoby najprostszym sposobem na zmianę nazwy katalogu w repozytorium git.
casesensitive
na CaseSensitive
, możesz to zrobić w następujący sposób: git mv casesensitive Temp
a następnie git mv Temp CaseSensitive
git rm -rf --cached path/to/your/directories
ponownie dodaj i zatwierdź
git config core.ignorecase false
a następnie uruchomić kolejno polecenia, w przeciwnym razie dostaniesz source is empty
błąd.
Jeśli pojawi się ten błąd: fatal: zmiana nazwy „foldername” nie powiodła się: Niepoprawny argument
Spróbuj tego:
git mv foldername tempname && git mv tempname folderName
git mv foldername tempname
i git mv tempname folderName
, które powinny działać w systemie Windows.
1. Zmień nazwę folderu ze starego na nowy
git mv oldfolder newfolder
2. Jeśli newfolder jest już w twoim repozytorium i chcesz go zastąpić i użyć: - force
git mv -f oldfolder newfolder
Nie zapomnij dodać zmian do indeksu i zatwierdzić je po zmianie nazwy za pomocą git mv.
3. Zmiana nazwy foldername na folderName w systemach plików bez rozróżniania wielkości liter
Prosta zmiana nazwy za pomocą normalnej komendy mv (nie git mv) nie zostanie rozpoznana jako zmiana pliku z git. Jeśli spróbujesz, używając polecenia „git mv”, jak w poniższym wierszu
git mv foldername folderName
Jeśli używasz systemu plików bez rozróżniania wielkości liter, np. Na komputerze Mac i nie skonfigurowałeś go tak, aby rozróżniał wielkość liter, pojawi się komunikat o błędzie taki jak ten:
fatal: zmiana nazwy „foldername” nie powiodła się: niepoprawny argument
Oto, co możesz zrobić, aby działało:
git mv foldername tempname && git mv tempname folderName
To dzieli proces zmiany nazwy, zmieniając najpierw folder na zupełnie inną nazwę folderu. Po zmianie nazwy na inną nazwę folderu nazwa folderu może wreszcie zostać zmieniona na nową nazwę folderu. Po tych „git mv” znowu nie zapomnij dodać i zatwierdzić zmian. Chociaż prawdopodobnie nie jest to piękna technika, działa ona doskonale. System plików nadal nie rozpoznaje zmiany wielkości liter, ale git robi to z powodu zmiany nazwy na nową nazwę folderu i to wszystko, czego chcieliśmy :)
Możesz zmienić nazwę katalogu za pomocą systemu plików. Następnie możesz zrobić git rm <old directory>
i git add <new directory>
( Strona pomocy ). Następnie możesz zatwierdzać i naciskać.
Git wykryje, że zawartość jest taka sama i że jest to tylko operacja zmiany nazwy i pojawi się jako wpis zmiany nazwy w historii. Możesz sprawdzić, czy tak jest przed użyciem zatwierdzeniagit status
Wydaje mi się, że z aplikacji internetowej nie możesz, ale możesz zmienić nazwę wszystkich folderów w Git Client, spowoduje to przeniesienie plików do nowych folderów o zmienionych nazwach, niż zatwierdzanie i wypychanie do zdalnego repozytorium.
Miałem bardzo podobny problem: musiałem zmienić nazwę różnych folderów z wielkich na małe (jak Abc -> abc), zmieniłem nazwy wszystkich folderów na atrapę (np. „Abc___”) i później zdecydowałem się na zdalne repozytorium po że zmieniłem nazwę wszystkich folderów na pierwotną nazwę małymi literami (jak abc) i zajęło im to!
Rozwiązałem to w dwóch krokach. Aby zmienić nazwę folderu za pomocą polecenia mv, potrzebujesz do tego odpowiednich uprawnień, jeśli nie masz odpowiednich uprawnień, możesz wykonać następujące kroki. Załóżmy, że chcesz zmienić nazwę rozróżniającą wielkość liter na rozróżniającą wielkość liter.
Krok 1: Zmień nazwę folderu (z rozróżnianiem wielkości liter) na coś innego z Eksploratora. np. Zmień nazwę z rozróżnianiem wielkości liter w folderze 1, zatwierdź tę zmianę.
Krok 2: Zmień nazwę tego nowo nazwanego folderu (folder1) na oczekiwaną nazwę z rozróżnianiem wielkości liter (rozróżniana wielkość liter), np. Zmień nazwę folderu 1 na wielkość liter. Zatwierdź tę zmianę.
W przypadku zmiany nazwy z rozróżnianiem wielkości liter, git mv somefolder someFolder
działało dla mnie wcześniej, ale dzisiaj z jakiegoś powodu nie. Więc jako obejście stworzyłem nowy folder temp
, przeniosłem całą zawartość somefolder
do temp
, usunąłem somefolder
, zatwierdziłem temp
, a następnie utworzyłem someFolder
, przeniosłem całą zawartość temp
do someFolder
, usunąłem temp
, zatwierdziłem i wypchnąłem someFolder
i zadziałało! Pokazuje się jak someFolder
w git.
Po prostu zmień nazwę folderu. git to „narzędzie do śledzenia zawartości”, więc skróty SHA1 są takie same i git wie, że zmienisz jego nazwę. Jedyne, co się zmienia, to obiekt drzewa.
rm <directory>
git add .
git commit