Este é o meu repositório Git:
https://github.com/benqzq/ulcwe
Ele tem um diretório chamado local
e eu quero mudar seu nome para outro nome (digamos, de local
para xyz
).
Mudá-lo manualmente através da GUI do GitHub é um pesadelo, pois preciso alterar o nome do diretório de cada arquivo separadamente (o GitHub ainda não incluiu a funcionalidade "Renomear diretório", acredite ou não).
Depois de instalar o Git, tentei este comando:
git remote https://github.com/benqzq/ulcwe && git mv local xyz && exit
Embora não tenha recebido nenhuma solicitação para minha senha do GitHub, recebi este erro:
fatal: Not a git repository (or any parent up to mount point /mnt/c)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
Sei que o objetivo principal do Git é baixar um projeto, alterar, testar e enviar para o provedor de hospedagem (GitHub neste caso), mas, para alterar apenas um diretório, desejo uma operação direta. Isso é possível com o Git?
Devo usar outro programa, talvez?
Respostas:
A mensagem de erro fatal indica que você está trabalhando em algum lugar que não é um clone do seu repositório git. Então, vamos começar pela clonagem do repositório git primeiro:
Em seguida, digite-o:
e renomeie o diretório:
Para que a alteração seja compartilhável, você precisa confirmá-la:
Agora você pode enviá-lo para o seu repositório git remoto:
e você verá a alteração na interface do GitHub.
fonte
Não, não há como fazer isso como uma operação direta, devido à maneira como o git está estruturado.
A maneira como o git funciona é que ele armazena uma cópia de todo o repositório, incluindo todo o histórico, em cada local.
O Github, o Bitbucket ou qualquer outro provedor de hospedagem é essencialmente apenas outra cópia do seu repositório git, com uma bonita interface da Web no topo, que é tratada como uma fonte central de verdade na maioria dos fluxos de trabalho, no entanto, o utilitário git não sabe disso.
As alterações são rastreadas como confirmadas. Estou supondo que
direct operation
, você quer dizer uma maneira de alterar o nome da pasta sem criar uma confirmação. Embora isso seja possível reescrevendo o histórico, eu não o recomendaria, especialmente se houver várias pessoas / máquinas com cópias do repositório git, pois isso pode levar a inconsistências.A maneira mais fácil de renomear uma pasta em um repositório git seria cloná-la localmente
Se você já possui uma cópia local do repositório, puxe-o para garantir que você esteja atualizado com o repositório remoto
Faça as alterações necessárias localmente
O qual deve ser adicionado automaticamente à área de teste pelo github. Então você deve confirmar e enviar essas alterações.
Isso confirmará a alteração no seu repositório local e, em seguida, enviará essas alterações para a cópia remota do repositório, neste caso, o Github.
fonte
git clone --depth
É possível renomear um diretório sem clonar o repositório, usando a API do GitHub. Não conheço nenhuma implementação.
Fonte: /programming//a/31567094/370786
fonte