Como renomear a pasta raiz git?

86

Acabei de começar a usar o git no Vista, com meu repositório em /path/to/project/git repo.

Agora descobri que o espaço no nome da pasta é uma pequena irritação ao trabalhar no git bash.

Posso apenas renomear a pasta para /path/to/project/gitrepo? Tudo no git config é relativo ou há algo que se refira explicitamente à pasta pai?

Eu tentei apenas fazer uma cópia do Windows da pasta principal e executar o git bash nisso, e 'git log' mostra as alterações que eu fiz anteriormente. Portanto, presumo que renomear a pasta principal esteja OK, mas gostaria de ter certeza antes de prosseguir.

Mick O'Hea
fonte

Respostas:

53

Para corrigir um pouco a resposta de Greg , sim, tudo com um repo git é relativo ao diretório pai, mas:.git

(e isso provavelmente não afetará você diretamente, eu apenas menciono esses motivos aqui para fins de integridade.):

  • o caminho do repo em si pode ser referenciado por outros serviços em execução no seu computador (Apache, ssh, outro repo declarando seu repo como remoto, usando o caminho completo do arquivo, uma camada gitolite declarando seus repos em um determinado caminho, ... )
  • algumas operações usam o caminho completo do repo (como GIT_INDEX_FILEusar dentro de um filter-branchcomando, por exemplo, consulte este tópico ), portanto, obviamente, não renomeie o diretório raiz enquanto executa uma operação complexa em seu repo.

Além disso, uma "cópia do Windows" (em vez de a git clone) copiará tudo, incluindo ganchos, que podem incluir o caminho absoluto em seu script se você os tiver editado e feito esse tipo de modificação.

VonC
fonte
2
então, se alguém tiver etapas práticas e explícitas para se certificar de que seguirá, isso seria muito prático.
ahnbizcad de
@gwho qual passo, além de renomear a pasta repo?
VonC de
88

Sim, é seguro renomear a pasta que contém um repositório Git. Todos os caminhos dentro do repositório Git são relativos.

Greg Hewgill
fonte
4

Verifique os comentários primeiro ...

Na minha opinião, o melhor é usar o fluxo de trabalho git , principalmente quando você usa um servidor git (repositório master remoto), o que significa:

  • obter o antigo diretório em sincronia com o seu servidor git ( git pull, git pushe, finalmente, git statuspara ver se está tudo bem)
  • git clone <former directory> <new directory>

(Como também sou novo no GIT, essa pode não ser a resposta completa e correta. Eu tive a mesma pergunta que Mick e para fins de aprendizado, tentei fazer do jeito git :) Obrigado pela pista, vonC! Por favor, corrija-me, se necessário :)

PythoNic
fonte
1
Se você git clone <former directory> <new directory>, você não precisa criar o <new directory>primeiro. O git cloneirá criar para você.
VonC de
3
Eu não acho que isso faça o que você quer. Isso define a origem de <new directory>para <old directory>. Então, um git remote -vem <new directory>apareceria origin C:/old/directory.
kvu787
1
Eu concordo com @ kvu787, isso não soa como o que foi pedido e provavelmente causará muitos problemas.
alkanen
@ kvu787 @alkanen, Isso ajuda, o que um usuário sugeriu: git remote rm origin- para remover seu diretório antigo como a origem de seu novo representante e - cd .. and rm -rf <former directory>para excluir o diretório antigo
PythoNic
@PythoNic, se o repo antigo tivesse um remoto denominado "origin", então não, isso não estaria certo porque seu novo repo não teria mais esse remoto. Caso contrário, tudo bem, mas renomear a pasta seria mais simples.
kvu787
0

sim, você pode mudar isso. seu repo ainda direciona para seu git .. só não remova / edite o nome de .git para

Akshay Kumar
fonte