Як перейменувати кореневу папку git?


85

Я щойно почав використовувати git у Vista, зі своїм сховищем під /path/to/project/git repo.

Зараз я виявив, що простір в назві папки є незначним роздратуванням під час роботи в git bash.

Чи можу я просто перейменувати папку на /path/to/project/gitrepo? Чи все в межах конфігурації git відносно, чи є щось, що прямо посилається на батьківську папку?

Я спробував просто взяти копію основної папки у Windows і запустити на ній git bash, а 'git log' відображає зміни, які я вносив раніше. Тому я припускаю, що перейменування головної папки - це нормально, але я хотів би бути впевненим, перш ніж йти далі.

Відповіді:


53

Щоб трохи внести зміни у відповідь Грега , так, все з git repo є відносно батьківського каталогу, але:.git

(і це, мабуть, не вплине на вас безпосередньо, я лише згадую ці причини тут для повноти.):

  • шлях самого репо може посилатися на інші служби, що працюють на вашому комп'ютері (Apache, ssh, інше репо, що оголошує ваше репо як віддалене, використовуючи повний шлях до файлу, шар гітоліту, що декларує ваші репо в певному шляху, ... )
  • деякі операції використовують повний шлях репо (наприклад, GIT_INDEX_FILEвикористання в filter-branchкоманді, наприклад, див. цей потік ), тому, очевидно, не перейменовуйте кореневий каталог, виконуючи складну операцію над вашим репо.

Крім того, "копія Windows" (замість " git clone)" копіює все, включаючи хуки, які можуть містити абсолютний шлях у своєму сценарії, якщо ви їх редагували та вносили такі зміни.


2
отже, якщо хтось має практичні, чіткі кроки, щоб це зробити, це було б дуже ефективно.
ahnbizcad

@gwho, який крок, окрім перейменування папки репо?
VonC

88

Так, можна перейменувати папку, що містить сховище Git. Всі шляхи всередині сховища Git відносні.


4

Спочатку перевірте коментарі ...

На мій погляд, найкраще використовувати робочий процес git , особливо коли ви використовуєте сервер git (віддалене головне сховище), що означає:

  • отримати старий каталог в синхронізації з сервером (мерзотника git pull, git pushі, нарешті , git statusщоб побачити , якщо все в порядку)
  • git clone <former directory> <new directory>

(Оскільки я також новачок у GIT, це може бути не повною, правильною відповіддю. У мене було те саме запитання, що і у Міка, і для навчальної мети я намагався зробити це по-гітску :) Дякую за підказку, vonC! Будь ласка, виправте мене, якщо потрібно :)


1
Якщо ви git clone <former directory> <new directory>, вам не потрібно створювати <new directory>перший. git cloneСтворить його для вас.
VonC

3
Я не думаю, що це робить те, що ти хочеш. Це встановлює походження <new directory>до <old directory>. Отже, git remote -vin <new directory>показав би origin C:/old/directory.
kvu787

1
Я згоден з @ kvu787, це не схоже на те, про що просять, і, ймовірно, спричинить безліч проблем.
alkanen

@ kvu787 @alkanen, Чи допомагає це те, що запропонував користувач: git remote rm origin- видалити старий каталог як джерело вашого нового представника та - cd .. and rm -rf <former directory>видалити старий каталог
PythoNic

@PythoNic, якби старе репозиторій мав пульт з назвою "origin", то ні, це не було б нормально, оскільки у вашому новому репо не було б цього пульта. В іншому випадку це було б добре, але перейменування папки було б простішим.
kvu787

0

так, ви можете це змінити. ваше репо все ще спрямовує на ваш git .. просто не видаляйте / редагуйте ім'я .git fo

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