2011-08-26 5 views
63

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

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

Могу ли я просто переименовать папку в /path/to/project/gitrepo? Является ли все в пределах git config relative, или есть что-либо, что явно относится к родительской папке?

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

ответ

42

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

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

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

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

+2

, поэтому, если у кого-то есть практические, явные шаги, чтобы сделать это, это было бы очень действенным. – ahnbizcad

+0

@gwho Какой шаг, помимо переименования папки репо? – VonC

67

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

+0

Блестящий, спасибо. –

5

На мой взгляд, лучше всего использовать рабочий GIT, особенно при использовании Git-сервер (удаленный мастер-хранилище), что означает:

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

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

+1

Если вы 'git clone <прежний каталог><новый каталог>', вам не нужно сначала создавать '<новый каталог>'. «Git clone» создаст его для вас. – VonC

+0

@VonC: thx, я изменил это – PythoNic

+1

Я не думаю, что это делает то, что вы хотите. Указывает начало '<нового каталога>' на '<старый каталог>'. Итак, 'git remote -v' в' 'будет показывать' origin C:/old/directory'. – kvu787

Смежные вопросы