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?
652
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):
Rozróżniana jest wielkość liter - np. od
casesensitive
doCaseSensitive
- musisz wykonać dwa kroki:( 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.
źródło
casesensitive
naCaseSensitive
, możesz to zrobić w następujący sposób:git mv casesensitive Temp
a następniegit 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 dostanieszsource 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
źródło
git mv foldername tempname
igit mv tempname folderName
, które powinny działać w systemie Windows.1. Zmień nazwę folderu ze starego na nowy
2. Jeśli newfolder jest już w twoim repozytorium i chcesz go zastąpić i użyć: - force
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
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:
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 :)
źródło
Możesz zmienić nazwę katalogu za pomocą systemu plików. Następnie możesz zrobić
git rm <old directory>
igit 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 zatwierdzenia
git status
źródło
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!
źródło
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ę.
źródło
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 foldertemp
, przeniosłem całą zawartośćsomefolder
dotemp
, usunąłemsomefolder
, zatwierdziłemtemp
, a następnie utworzyłemsomeFolder
, przeniosłem całą zawartośćtemp
dosomeFolder
, usunąłemtemp
, zatwierdziłem i wypchnąłemsomeFolder
i zadziałało! Pokazuje się jaksomeFolder
w git.źródło
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.
źródło