Sim , há pelo menos uma grande dificuldade ao considerar git
para gerenciar um diretório inicial que não seja uma preocupação com subversion
.
O Git é ganancioso e recursivo por padrão .
O Subversion irá ignorar ingenuamente qualquer coisa que ele não saiba e irá parar o processamento das pastas para cima ou para baixo a partir do seu checkout quando ele chegar a um que ele não saiba (ou que pertença a um repositório diferente). O Git, por outro lado, continua recursando em todos os diretórios filhos, tornando as verificações aninhadas muito complicadas devido a problemas de namespace. Como o seu diretório home provavelmente também é o lugar onde você faz o checkout e trabalha com vários outros repositórios git, ter seu diretório home no git quase certamente tornará sua vida uma bagunça impossível.
Como se constata, esta é a principal razão pela qual as pessoas fazem o check-out de seus arquivos de ponto em uma pasta isolada e, em seguida, criam links simbólicos nele. Ele fica fora do caminho ao fazer qualquer outra coisa em qualquer diretório filho do seu $HOME
. Embora isso seja puramente uma questão de preferência se você for verificar sua casa como subversão, isso se torna uma questão de necessidade se você usar o git.
No entanto , existe uma solução alternativa. O Git permite algo chamado "raiz falsa", onde toda a maquinaria do repositório está escondida em uma pasta alternativa que pode ser fisicamente separada do diretório de trabalho de checkout. O resultado é que o kit de ferramentas do git não ficará confuso: ele nem mesmo CONSULTARá seu repositório, apenas a cópia de trabalho. Ao definir algumas variáveis de ambiente, você pode avisar o git onde encontrar as mercadorias para os momentos em que estiver gerenciando seu diretório pessoal. Sem as variáveis de ambiente definidas, ninguém é o mais sábio e sua casa parece um arquivo clássico.
Para fazer esse truque fluir um pouco mais suave, existem algumas ótimas ferramentas por aí. A lista de discussão de vcs-casa parece o lugar de defacto para começar, e a página sobre tem um embrulho conveniente de howtos e pessoas experiências. Ao longo do caminho, algumas pequenas ferramentas interessantes como vcsh , mr . Se você quiser manter seu diretório home diretamente no git, o vcsh é quase uma ferramenta indispensável. Se você acabar dividindo seu diretório home em vários repostories nos bastidores, combine vcsh
com mr
para uma maneira rápida e não muito suja de gerenciar tudo de uma vez.