Змінити ім’я каталогів у сховищі Github віддалено, безпосередньо з локального Linux Git?


10

Це моє сховище Git:

https://github.com/benqzq/ulcwe

У нього є ім’я dir, localі я хочу змінити його ім'я на інше ім'я (скажімо, з localна xyz).

Зміна його через GUI GitHub вручну - це кошмар, оскільки мені потрібно змінити ім’я каталогів для кожного файлу окремо (GitHub ще не повинен включати функцію "Перейменування каталогів", вірите чи ні).

Після установки Git я спробував цю команду:

git remote https://github.com/benqzq/ulcwe && git mv local xyz && exit

Хоча я не отримав жодного повідомлення про свій пароль GitHub, я отримав цю помилку:

fatal: Not a git repository (or any parent up to mount point /mnt/c)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

Я знаю, що все в Git полягає в тому, щоб завантажити проект, змінити, протестувати, а потім натиснути на хостинг-провайдера (GitHub в цьому випадку), але щоб просто змінити каталог, я бажаю прямої операції. Чи можливо це навіть з Git?

Чи варто використовувати іншу програму?


2
Ні, прямі віддалені операції в Git неможливі. Вам потрібно клонувати (завантажувати) проект, змінювати його, а потім відштовхуватися до хостинг-провайдера. Але як ви навіть користуєтеся Github, не маючи проекту на своєму комп’ютері? Ви вносите всі зміни через веб-інтерфейс Github - це не дуже зручно чи ефективно.
користувач253751

У цьому конкретному випадку користування користувальницьким інтерфейсом, як правило, досить зручно та ефективно для мене, головне, що я сумую, - це пряма зміна імені
режисера

Відповіді:


28

Повідомлення про фатальну помилку означає, що ви працюєте звідкись, що не є клоном вашого сховища git. Отже, для початку спочатку клонуємо сховище git:

git clone https://github.com/benqzq/ulcwe.git

Потім введіть його:

cd ulcwe

та перейменуйте каталог:

git mv local xyz

Щоб зміни були доступними, вам потрібно зробити це:

git commit -m "Rename local to xyz"

Тепер ви можете натиснути його на ваше віддалене сховище git:

git push

і ви побачите зміни в інтерфейсі GitHub.


14
Іншими словами, це як і будь-яка інша операція з файлами у вашому сховищі Git.
Гонки легкості на орбіті

2
@LightnessRacesinOrbit запитувач, як видається, використовував веб-інтерфейс для всіх своїх змін досі.
користувач253751

5

Ні, немає способу зробити це як пряму операцію через структурування git.

Git працює так, що він зберігає копію всього сховища, включаючи всю історію, у кожному окремому місці.

Github, або Bitbucket, або будь-який інший хостинг-провайдер - це, по суті, лише чергова копія вашого сховища git, з гарним веб-інтерфейсом, який розглядається як центральне джерело істини в більшості робочих процесів, проте утиліта git цього не знає.

Зміни відстежуються як коміти. Я здогадуюсь, що direct operation, маючи на увазі, ви маєте на увазі спосіб зміни назви папки без створення комірок. Хоча це можливо за допомогою переписування історії, я б не рекомендував її, особливо якщо є кілька людей / машин з копіями git repo, оскільки це може призвести до невідповідностей.

Найпростіший спосіб перейменувати папку в git repo - це клонувати її локально

git clone [url]
cd [git-folder]

Якщо у вас вже є локальна копія репо, витягніть її, щоб переконатися, що ви в курсі віддаленого репо

git pull

Внесіть необхідні зміни на місцевому рівні

git mv local xyz

Який автоматично повинен бути доданий до місця постановки за допомогою github. Тоді вам слід зробити ці зміни та натиснути на них.

git commit -m 'Renamed local to xyz'
git push

Це призведе до зміни у вашому локальному сховищі, а потім перенесіть ці зміни у віддалену копію сховища, у цьому випадку Github.


8
Ні, історія не зберігається як зміни між комісіями, кожне зобов’язання є госпрозрахунковим. Зміни між комісіями перераховуються за запитом кожного разу, коли вони знадобляться.
Стівен Кітт

3
"вся історія завантажується в кожне місце" - не зgit clone --depth
користувач11153

2
Переписування історії для цього не потрібно - GitHub може просто генерувати комісію, роблячи це. (Так само, як це вже робиться під час редагування файлів безпосередньо на веб-сайті.)
user1686

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.