Я думаю, що слід працювати над тим, щоб скопіювати каталог, який буде перейменований на новий каталог з потрібним ім'ям, і видалити старий каталог , і git add
, git commit
і push
все. Але це найкращий спосіб?
Я думаю, що слід працювати над тим, щоб скопіювати каталог, який буде перейменований на новий каталог з потрібним ім'ям, і видалити старий каталог , і git add
, git commit
і push
все. Але це найкращий спосіб?
Відповіді:
Основне перейменування (або переміщення):
git mv <old name> <new name>
Перейменування з урахуванням регістру - наприклад. від casesensitive
до CaseSensitive
-ви повинні використовувати два кроки:
git mv casesensitive tmp
git mv tmp CaseSensitive
( Більше про чутливість регістру в Git… )
… Слідом за цим виконуватиметься компіляція та натискання - це найпростіший спосіб перейменувати каталог у git repo.
casesensitive
на CaseSensitive
, ви можете зробити так: git mv casesensitive Temp
а потім git mv Temp CaseSensitive
git rm -rf --cached path/to/your/directories
то повторно додайте та
git config core.ignorecase false
а потім запустити команди послідовно, або в іншому випадку я отримав source is empty
помилку.
Якщо ви отримали цю помилку: fatal: перейменування "ім'я папки" не вдалося: недійсний аргумент
Спробуйте це:
git mv foldername tempname && git mv tempname folderName
git mv foldername tempname
і git mv tempname folderName
які повинні працювати в Windows.
1. Змініть ім'я папки зі старої папки на нову
git mv oldfolder newfolder
2. Якщо NewFolder вже в вашому сховище і ви хочете , щоб скасувати його і використовувати: - сила
git mv -f oldfolder newfolder
Не забудьте додати зміни до індексу та зробити їх після перейменування на git mv.
3. Перейменування імені папки в папкуName на файлових системах, нечутливих до регістру
Просте перейменування за допомогою звичайної команди mv (не git mv) не буде розпізнано як зміна файлу з git. Якщо ви спробуєте це за допомогою команди 'git mv', як у наступному рядку
git mv foldername folderName
Якщо ви використовуєте файлову систему, нечутливу до регістру, наприклад, ви перебуваєте на Mac і не налаштували її на чутливість регістру, ви побачите повідомлення про помилку, як це:
fatal: не вдалося перейменувати "ім'я папки": недійсний аргумент
І ось що ви можете зробити для того, щоб це працювало: -
git mv foldername tempname && git mv tempname folderName
Це розділяє процес перейменування, спочатку перейменувавши папку на зовсім інше ім'я папки. Після перейменування його на інше ім'я папки остаточно можна перейменувати в нову папкуName. Після цих git mv, знову ж таки, не забудьте додати та внести зміни. Хоча це, мабуть, не красива техніка, вона працює чудово. Файлова система все одно не розпізнає зміну літерних букв, але git робить це через перейменування її на нову назву папки, і це все, що ми хотіли :)
Ви можете перейменувати каталог за допомогою файлової системи. Тоді ви можете зробити git rm <old directory>
і git add <new directory>
( Сторінка довідки ). Тоді ви можете скористатися і натиснути.
Git виявить, що вміст однаковий і що це лише операція з перейменуванням, і він з’явиться як запис перейменування в історії. Ви можете перевірити, чи це так, перш ніж скористатися комітетомgit status
З веб-додатку, я думаю, ви не можете, але ви можете перейменувати всі папки в Git Client, він перемістить ваші файли в нові перейменовані папки, ніж здійснить компіляцію та пересуне до віддаленого сховища.
У мене була дуже схожа проблема: мені довелося перейменовувати різні папки від великого до нижнього регістру (наприклад, Abc -> abc), я перейменував усі папки з манекеновим ім'ям (наприклад, 'abc___'), а потім перейшов у віддалений сховище, після що я перейменував усі папки на оригінальну назву з малої літери (як abc), і це взяло їх!
Я вирішив це в два кроки. Щоб перейменувати папку за допомогою команди mv, для цього потрібні права, якщо ви не маєте права, виконайте ці дії. Припустимо, ви хочете перейменувати регістр чутливості у Casesensitive.
Крок 1: Перейменуйте папку (чутливу до регістру) на щось інше з Провідника. наприклад, Перейменуйте чутливий регістр до папки1, вчинити цю зміну.
Крок 2: Перейменуйте цю щойно названу папку (папку1) на очікуване ім'я, яке чутливе до регістру (регістр чутливості), наприклад. Перейменуйте папку1 на «Casesensitive». Вчиніть цю зміну.
Для перейменування з урахуванням регістру git mv somefolder someFolder
працював для мене раніше, але сьогодні чомусь цього не зробив. Тож як вирішуючи проблему, я створив нову папку temp
, перемістив увесь вміст somefolder
у temp
, видалив somefolder
, здійснив temp
, потім створив someFolder
, перемістив увесь вміст temp
у someFolder
, видалив temp
, вчинив і натиснув, someFolder
і воно спрацювало! Показує, як someFolder
у git.
Просто перейменуйте папку. git - це "трекер контенту", тому хеші SHA1 такі самі, і git знає, що ви перейменовуєте його. Єдине, що змінюється - це дерево-об’єкт.
rm <directory>
git add .
git commit