Dúvidas básicas de repositório e boas práticas

Boa noite,

Lendo o livro, comecei a pensar em opções de criação de nomes de repositórios… Por exemplo:

Se eu desenvolvo para uma empresa e quero começar a utilizar o GitHub com os projetos e também quero armazenar projetos pessoais também, como seria o nome do repositório ?

Dúvida 01: O nome do repositório seria “Nome da empresa - nome do sistema” ? E se depois desenvolver algum outro, seria “nome da empresa - nome do outro sistema”?

dúvida 02: Se a empresa desenvolve em duas linguagem, como por exemplo C# e Java, ou qualquer outra, o nome dos repositórios poderia ser “nome da empresa - linguagem - nome do sistema”?

Entendo que não se pode criar sub repositórios, correto?

Mas no computador onde é desenvolvido, se for em java, o workspace seria algo como "workspace\nome da empresa\nome do sistema.

dúvida 03: Na hora de clonar em algum computador, o git criaria a pasta com o nome que está no GitHub ou no apenas faria o clone na pasta que eu indicar, independente de ser o mesmo nome ou não?

tem alguma “regra” ou boa prática ?

Olá, Ivan.

Vou relatar o que vejo as pessoas e equipes fazendo na prática.

Se eu desenvolvo para uma empresa e quero começar a utilizar o GitHub com os projetos e também quero armazenar projetos pessoais também, como seria o nome do repositório ?

Você criaria um usuário no GitHub.

Seus projetos pessoais ficariam em repositórios desse usuário.

Você ou outra pessoa da sua empresa criariam um Organization no GitHub. Uma organization pode ter diferentes repositórios e vários usuários associado a organização.

Quanto ao nome dos repositórios, em geral, colocamos o nome do projeto. P. ex., a organization Caelum tem repositórios como: gnarus, caelumsite, mamute, vraptor4, caelum-stella, tubaina2. Cada um desses repositórios é o nome de um projeto diferente, seja uma app, um framework ou uma ferramenta.

Dúvida 01: O nome do repositório seria “Nome da empresa - nome do sistema” ? E se depois desenvolver algum outro, seria “nome da empresa - nome do outro sistema”?

Conforme exemplificado acima, cada repositório tem apenas o nome do sistema. O nome da empresa fica na organization.

dúvida 02: Se a empresa desenvolve em duas linguagem, como por exemplo C# e Java, ou qualquer outra, o nome dos repositórios poderia ser “nome da empresa - linguagem - nome do sistema”?

O nome da linguagem é um detalhe. E, na verdade, um sistema tem várias linguagens. P. ex., um sistema web dos mais simples vai ter linguagens de programação como Java e JavaScript, linguagens de marcação como XML e linguagens específicas como SQL, etc… Há sistemas mais complexos feitos em várias linguagens como Groovy, Scala, Java, etc…

Por isso, não coloque o nome da linguagem no nome do repositório.

Entendo que não se pode criar sub repositórios, correto?

A princípio, não é possível criar sub repositórios. Você poderia criar pastas dentro do repositório, mas não é recomendado. O Git foi pensado para ter vários repositórios pequenos: como é um sistema de controle de versão distribuído, toda máquina tem uma cópia completa do repositório.

Até há uma ferramenta chamada submódulos, mas é algo bastante avançado.

dúvida 03: Na hora de clonar em algum computador, o git criaria a pasta com o nome que está no GitHub ou no apenas faria o clone na pasta que eu indicar, independente de ser o mesmo nome ou não?

O Git cria por padrão uma pasta com o nome do repositório do GitHub.

Porém, se você quiser alterar o nome da pasta ao fazer o clone, você pode passar o nome da pasta de destino na frente. Exemplo:

git clone git@github.com:caelum/tubaina2.git outro-nome

tem alguma “regra” ou boa prática ?

Em nenhuma equipe houve discussão sobre as práticas nesse ponto. Em geral, usamos o senso comum, que descrevi acima.