Por alguma razão, só tenho um repositório para usar.
Mas tenho vários projetos, incluindo java
projetos php scripts
e Android
aplicativos.
Agora, meu problema é que tenho que colocá-los em diferentes subpastas dentro do repositório
. Uso IDEs diferentes. Você sabe, cada IDE pode ter um espaço de trabalho por si só.
Quem pode me dizer a melhor prática para resolver o problema?
Respostas:
Enquanto a maioria das pessoas diz para você usar apenas vários repositórios, acho que vale a pena mencionar que existem outras soluções.
Solução 1
Um único repositório pode conter várias ramificações independentes , chamadas ramificações órfãs . Ramos órfãos são completamente separados um do outro; eles não compartilham histórias.
Isso cria uma nova ramificação, não relacionada à sua ramificação atual. Cada projeto deve estar em seu próprio ramo órfão.
Agora, por qualquer motivo, o git precisa de um pouco de limpeza após um checkout órfão.
Verifique se tudo está comprometido antes de excluir
Depois que o ramo órfão estiver limpo, você poderá usá-lo normalmente.
Solução 2
Evite todo o aborrecimento de galhos órfãos. Crie dois repositórios independentes e envie-os para o mesmo controle remoto. Basta usar nomes de ramificações diferentes para cada repositório.
fonte
Solução 3
Isto é para usar um único diretório para vários projetos. Eu uso essa técnica para alguns projetos intimamente relacionados, onde muitas vezes preciso puxar alterações de um projeto para outro. É semelhante à idéia de galhos órfãos, mas os galhos não precisam ficar órfãos. Simplesmente inicie todos os projetos no mesmo estado de diretório vazio.
Iniciar todos os projetos de um diretório vazio confirmado
Não espere maravilhas com esta solução. A meu ver, você sempre terá aborrecimentos com arquivos não rastreados. O Git realmente não tem idéia do que fazer com eles e, se houver arquivos intermediários gerados por um compilador e ignorados pelo seu arquivo .gitignore, é provável que eles permaneçam suspensos por algum tempo, se você tentar trocar rapidamente entre - por exemplo - seu projeto de software e um projeto de tese de doutorado.
No entanto, aqui está o plano. Comece como você deve iniciar qualquer projeto git, confirmando o repositório vazio e inicie todos os seus projetos no mesmo estado de diretório vazio. Dessa forma, você tem certeza de que os dois lotes de arquivos são bastante independentes. Além disso, dê um nome adequado às suas filiais e não use apenas "master" preguiçosamente. Seus projetos precisam ser separados, portanto, forneça nomes apropriados.
As confirmações do Git (e, portanto, tags e branches) basicamente armazenam o estado de um diretório e seus subdiretórios e o Git não tem idéia se são partes do mesmo ou de diferentes projetos; portanto, não há problema em o git armazenar projetos diferentes no mesmo repositório. O problema é você limpar os arquivos não rastreados de um projeto ao usar outro ou separar os projetos posteriormente.
Crie um repositório vazio
Comece seus projetos de vazio.
Trabalhe em um projeto.
Iniciar outro projeto
quando você quiser.
Mudar para frente e para trás
Volte e avance entre os projetos sempre que quiser. Este exemplo remonta ao projeto de software de xadrez.
Arquivos não rastreados são irritantes
No entanto, você ficará incomodado com arquivos não rastreados ao trocar entre projetos / ramificações.
Não é um problema intransponível
Por definição, por definição, o git realmente não sabe o que fazer com arquivos não rastreados e cabe a você lidar com eles. Você pode impedir que arquivos não rastreados sejam transportados de uma ramificação para outra da seguinte maneira.
Ao garantir que o diretório estivesse vazio antes de verificar nosso novo projeto, garantimos que não houvesse arquivos não rastreados pendentes de outro projeto.
Um refinamento
Se as mesmas datas forem especificadas sempre que você confirmar um repositório vazio, as confirmações do repositório vazio criadas independentemente poderão ter o mesmo código SHA1. Isso permite que dois repositórios sejam criados independentemente e depois mesclados em uma única árvore com uma raiz comum em um repositório posteriormente.
Exemplo
Resultado
Usar subdiretórios por projeto?
Também pode ajudar se você mantiver seus projetos em subdiretórios sempre que possível, por exemplo, em vez de ter arquivos
ter
Nesse caso, seu arquivo de software não rastreado será
chess/untracked_software_file.prog
. Ao trabalhar nothesis
diretório, você não deve ser incomodado por arquivos de programa de xadrez não rastreados e poderá encontrar ocasiões em que poderá trabalhar feliz sem excluir arquivos não rastreados de outros projetos.Além disso, se você deseja remover arquivos não rastreados de outros projetos, será mais rápido (e menos propenso a erros) despejar um diretório indesejado do que remover arquivos indesejados selecionando cada um deles.
Os nomes das filiais podem incluir caracteres '/'
Portanto, convém nomear seus ramos como
fonte
Eu usaria
git submodules
.dê uma olhada aqui repositório Git em um repositório Git
Conforme fevereiro de 2019, eu sugeriria
Monorepos
fonte
git submodule add [url to git repo]
- git-scm.com/book/en/v2/Git-Tools-Submodules