1

Se você está começando com Git e GitHub agora, NÃO FAÇA ISSO!

Boa noite galera!

Resolvi trazer esse conteúdo, pois um amigo meu teve o mesmo problema que vou relatar.

Meu amigo começou a usar o Git e o GitHub para versionar seus projetos, porém ele cometeu um erro que o fez deixar algumas pastas inacessíveis em seu repositório do GitHub.

Exemplo 1 - demonstração do erro em vídeo - GitHub

Explicação:

O que acontece é que, quando você dá um git init no seu repositório, uma pasta é criada com as configurações do git. Geralmente não reparamos, pois ela fica como arquivo oculto, mas se você habilitar a opção de ver arquivos ocultos, verá a pasta.

Assim como na imagem a seguir:
Exemplo 2 - Pasta .git - GitHub

A pasta .git é onde ficam as configurações necessárias para que o git monitore as modificações do seu projeto. Além disso, ela é responsável por guardar e setar em qual versão o seu projeto está.


Até aí tudo bem. O problema é quando você já tem um arquivo .git na pasta principal, mas cria outras pastas dentro dela e dá um git init dentro da pasta criada.

Vou exemplificar melhor:

  1. Em meu computador, criei uma pasta chamada 'Projetos':
    Demonstração - imagem 1

  2. Em seguida, dei um git init na pasta e subi ela para o GitHub:
    Demonstração - imagem 2

  3. Após isso, criei uma pasta chamada 'Projeto-01':

    • Dentro dela dei um git init e adicionei um arquivo.
      Demonstração - imagem 3

Se eu estiver dentro da pasta e publicar somente o 'Projeto-01' no GitHub, ele vai funcionar e ser acessível tranquilamente.
Caso queira ver o repositório do 'Projeto-01', aqui está o link.


  1. Repeti os mesmos passos e criei mais uma pasta chamada 'Projeto-02' (porém não publiquei ela no GitHub).
    Demonstração - imagem 4

  2. Logo depois, retornei a pasta projetos, commitei as alterações e subi para o GitHub:

        É AI QUE APARECE O PROBLEMA!
    
    • O GitHub vai deixar as pastas 'Projeto-01' e 'Projeto-02' inacessíveis e o ícone da pasta recebe o ícone de uma seta dentro, pois dentro delas também existe um arquivo de configuração .git o que faz o GitHub travar o acesso à sua pasta.
      Demonstração - imagem 5

Solução:

Bom, depende do seu objetivo. É bom você levar em conta alguns pontos:

  • Você quer deixar só um repositório contendo os seus projetos?

    • Se sim, você pode apenas deletar a pasta .git de 'Projeto-01' e 'Projeto-02' e deixa apenas o .git da pasta Projetos.
  • Você quer apenas publicar seus projetos individualmente?

    • Se sim, recomendo que apague o apenas .git da pasta 'Projetos' e também apague o repositório de Projetos, já que você vai publicar cada projeto individualmente. Pronto, agora é só modificar os seus projetos individualmente e publicá-los.

  • Você quer manter os dois (Vish, vou lhe sugerir a seguir uma gambiarra kkkk)?

    • Primeiro, copie os projetos 01 e 02, e cole fora da pasta Projetos (o local é da sua preferência), como as configurações dos projetos estão lá, nada se perderá.

    • Depois, dentro da pasta Projetos, você terá que apagar o .git existente nas pastas dos projetos 01 e 02.

    • Agora vem a gambis, rsrsrs! É só mexer nos projetos fora dessa pasta e subir as modificações normalmente. Maaaas, uma vez que o .git foi apagado de dentro dos projetos 01 e 02 da pasta Projetos, toda vez que houver uma alteração você terá que ficar copiando (das pasta que estão fora) e colando(dentro da pasta Projetos) as alterações que fizer nos projetos 01 e 02 . Então você vai poder commitar normalmente e os seus repositórios vão funcionar normalmente.




Galera, peço que me perdoem pela repetição de palavras e também se eu não consegui ser muito explicita.
Se vocês tiverem dúvidas ou outras alternativas ou puderem complementar o conteúdo, por favor, sintam-se à vontade para comentar.

Eu também tentei adicionar ao .gitignore de Projetos o .git, mas mesmo assim ele não destravou o acesso as subpastas no GitHub.

Carregando publicação patrocinada...
1

Passei por isso semana passada, baixei um template bootstrap e colocei no meu projeto direto na pasta vendor, o problema é que não estava comitando. Ai resolvi sair apagando tudo e joguei só o que precisava para uma nova pasta e funcionou.

1

Passei por isso, quando eu estava estudando e baixava repositorios para testes.
usei muito a linha de comando rm -rf .git. hehehehe. obrigado pela dica da gambiarra ♥

1
1

Que interessante! Não tinha visto essa função. Provavelmente deve ser isso que costuma acontecer o git transforma num submódulo automaticamente.
Pra quem tá começando no git ou mesmo pra quem não tem costume de trabalhar com submódulos, acaba sendo um problema meio chato de resolver, justamente pos não saber dessa função...
Muito obrigada pela informação! 😄