Как переименовать корневую папку git?

85

Я только начал использовать git в Vista, мой репозиторий находится под /path/to/project/git repo.

Теперь я обнаружил, что пробел в имени папки вызывает незначительное раздражение при работе в git bash.

Могу я просто переименовать папку в /path/to/project/gitrepo? Все ли в конфигурации git является относительным, или есть что-то, что явно относится к родительской папке?

Я пробовал просто взять копию основной папки для Windows и запустить на ней git bash, а «git log» показывает изменения, которые я внес ранее. Поэтому я предполагаю, что переименование основной папки в порядке, но я хотел бы убедиться, прежде чем идти дальше.

Мик О'Хи
источник

Ответы:

53

Для того, чтобы немного изменить Greg «s ответ , да, все с мерзавца репо является относительно .gitродительского каталога, но:

(и это, вероятно, не повлияет на вас напрямую, я упоминаю эти причины здесь только для полноты.):

  • на путь самого репо могут ссылаться другие службы, запущенные на вашем компьютере (Apache, ssh, другое репо, объявляющее ваше репо как удаленное, с использованием полного пути к файлу, слой gitolite, объявляющий ваши репозитории на определенном пути, ... )
  • некоторые операции используют полный путь к репо (например, GIT_INDEX_FILEиспользование внутри filter-branchкоманды, см. этот поток ), поэтому, очевидно, не переименовывайте корневой каталог при выполнении сложной операции с репо.

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

VonC
источник
2
так что, если у кого-то есть практические, четкие шаги, которые нужно обязательно сделать, это будет очень действенным.
ahnbizcad
@gwho, какой шаг, кроме переименования папки репо?
VonC
88

Да, можно безопасно переименовать папку, содержащую репозиторий Git. Все пути внутри репозитория Git относительны.

Грег Хьюгилл
источник
4

Пожалуйста, сначала проверьте комментарии ...

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

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

(Так как я тоже новичок в GIT, это может быть не полный и правильный ответ. У меня был тот же вопрос, что и у Мика, и в целях обучения я попытался сделать это способом git :) Спасибо за подсказку, vonC! Пожалуйста, поправьте меня, если нужно :)

PythoNic
источник
1
Если да git clone <former directory> <new directory>, то создавать <new directory>первый не нужно . Он git cloneсоздаст это для вас.
VonC
3
Я не думаю, что это делает то, что вы хотите. Это устанавливает начало координат <new directory>в <old directory>. Таким образом, git remote -vв <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

Акшай Кумар
источник