Como enviar alterações para o repositório Git a partir de um diretório não inicializado
-
21-12-2019 - |
Pergunta
Eu tenho uma cópia local de todos os arquivos de algum repositório Git em um diretório não inicializado, ou seja,não rastreado pelo Git (sem .git nele) e introduzi algumas alterações nele.Como faço para enviar essas alterações para o repositório Git remoto?
Essas ações podem descrever o que quero dizer:
git clone … ./
- repositório clonadorm -Rf ./.git
- repositório não foi mais inicializadovi ./somefile
- algumas alterações introduzidas
Num aspecto mais prático:
Eu tenho um diretório clonado de alguma biblioteca criada por bower
ferramenta de gerenciamento de dependências.Introduzi algumas alterações nesta biblioteca e agora quero enviá-las para o mestre.
Estou procurando uma maneira inteligente de reinicializar este diretório com o Git e enviar alterações como um único commit para o repositório remoto.
Solução
Estou procurando uma maneira inteligente de reinicializar este diretório com o Git e enviar alterações como um único commit para o repositório remoto.
Fácil:inicialize-o em outro lugar:
cd /path/to/somewhere/else
git clone /url/to/bower
cd bower
Em seguida, faça referência à sua pasta antiga (onde você fez algumas alterações) como a árvore de trabalho do git enquanto você está no novo repositório clonado:
git --work-tree=/path/to/old/folder add .
git commit -m "changes'
git push
Veja o --work-tree
opção do git
comando.
Em teoria, você poderia fazer o git clone
diretamente na sua pasta antiga com git clone -n
:
cd /path/to/your/old/folder
git clone -n /url/of/bower .
(Pode reclamar que a pasta não está vazia; nesse caso, faça o git clone -n fora e mova a pasta .git para sua pasta antiga)
Mas prefiro manter a pasta antiga intacta e realizar operações relacionadas ao git em um clone separado.