Jak poprawnie zmienić nazwę katalogu w repozytorium Git?

W repozytorium Git, jak poprawnie zmienić nazwę katalogu? Myślę, że powinno działać skopiowanie katalogu, aby zmienić jego nazwę na nowy katalog o żądanej nazwie, A usunąć stary katalog igit add, git commit i wszystko. Ale czy to najlepszy sposób?

Author: Community, 2012-06-25

10 answers

Basic rename (or move):

git mv <old name> <new name>

Wielkość liter zmienia nazwę-np. od casesensitive do CaseSensitive - musisz użyć dwóch kroków:

git mv casesensitive tmp
git mv tmp CaseSensitive

(więcej o rozróżnianiu wielkości liter w Git...)

...Następnie commit i push byłby najprostszym sposobem zmiany nazwy katalogu w repo git.

 704
Author: CB Bailey,
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
2017-05-23 12:18:16

Jeśli pojawi się ten błąd: fatal: zmiana nazwy 'foldername' nie powiodła się: Invalid argument

Spróbuj tego:

git mv foldername tempname && git mv tempname folderName

 72
Author: Jacques Betancourt,
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-11-26 00:45:40

1. Zmień nazwę folderu z oldfolder na newfolder

git mv oldfolder newfolder

2. Jeśli newfolder jest już w Twoim repozytorium i chcesz go zastąpić i użyć:- Siła

git mv -f oldfolder newfolder

Nie zapomnij dodać zmian do indeksu i zatwierdź je po zmianie nazwy za pomocą git mv.

3. Zmiana nazwy foldername na folderName w systemach plików niewrażliwych na wielkość liter

Prosta zmiana nazwy za pomocą zwykłego polecenia mv (Nie git mv) nie zostanie rozpoznana jako zmiana pliku z git. Jeśli spróbujesz użyć polecenia 'git mv' jak w następującej linii

git mv foldername folderName

Jeśli używasz systemu plików niewrażliwych na wielkość liter, np. jesteś na komputerze Mac i nie skonfigurowałeś go tak, aby czuł wielkość liter, pojawi się komunikat o błędzie taki jak ten:

Fatal: zmiana nazwy foldername nie powiodła się: Invalid argument

A oto, co możesz zrobić, aby to działało:-

git mv foldername tempname && git mv tempname folderName

Spowoduje to podział procesu zmiany nazwy, zmieniając najpierw nazwę folderu na zupełnie inna nazwa folderu. Po zmianie nazwy folderu na inną nazwę folderu można ostatecznie zmienić nazwę na nową nazwę folderu. Po tych 'Git mv' ponownie, nie zapomnij dodać I zatwierdzić zmian. Chociaż prawdopodobnie nie jest to piękna technika, działa doskonale. System plików nadal nie rozpozna zmiany przypadków liter, ale git tak robi z powodu zmiany nazwy na nową nazwę folderu i to wszystko, czego chcieliśmy :)

 32
Author: akshay_rahar,
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-03-04 17:42:06

Możesz zmienić nazwę katalogu używając systemu plików. Wtedy możesz zrobić git rm <old directory> igit add <new directory> (Strona pomocy ). Wtedy możesz się zaangażować i przeć.

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 zatwierdzeniem za pomocą git status

 9
Author: Oleksi,
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-06-25 05:22:21

Z aplikacji webowej myślę, że nie możesz, ale możesz zmienić nazwy wszystkich folderów w kliencie Git, to przeniesie Twoje pliki do nowych folderów, a następnie zatwierdzi i wypchnie do zdalnego repozytorium.

Miałem bardzo podobny problem: Musiałem zmienić nazwy różnych folderów z wielkich na małe (jak Abc - > abc), mam przemianowane wszystkie foldery z dummy nazwy (jak ' abc___') i niż zobowiązał się do zdalnego repozytorium, po tym przemianowałem wszystkie foldery do oryginalnej nazwy z małe litery (jak abc) i zajęło im!

 2
Author: Syncro,
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-08-02 09:51:59

Dla twojej wiadomości ciągle otrzymywałem "FAILED \ Access denied", gdy używałem Tortoise lub opcji linii poleceń do zmiany nazwy. Działa tylko z opcji linii poleceń po zamknięciu okna Eksploratora.

 0
Author: Anonymouse,
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
2017-11-01 14:14:12

On https://github.com w interfejsie repozytorium:

Przejdź do Ustawienia -- > Nazwa repozytorium -- > wprowadź nową nazwę w obszarze.

 -1
Author: HoCo_,
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
2018-06-27 23:02:20

Po prostu zmieniłem nazwę katalogu, a następnie dodałem, zatwierdziłem i wypchnąłem do remote. Działa dobrze

Mv git add new_dir git commit-m" " git push

 -1
Author: Sharanbr,
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
2018-10-05 09:52:49
git rm -rf --cached path/to/your/directories

Następnie ponownie dodać i zatwierdzić.

 -3
Author: dtothefp,
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-29 10:23:46

Po prostu zmień nazwę folderu. git jest "content-trackerem", więc hasze SHA1 są takie same i git wie, że zmieniasz jego nazwę. Jedyną rzeczą, która się zmienia, jest obiekt-drzewo.

rm <directory>
git add .
git commit
 -9
Author: bitwave,
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-06-25 15:45:22