Atualmente, desenvolver jogos tem sido um trabalho árduo que demanda muito tempo, pessoas e muitas implementações. Mesmo que tenhamos várias ferramentas disponíveis gratuitamente a nossa disposição, o problema continua sendo sempre o mesmo: manter uma cópia segura das alterações e permitir que outras pessoas colaborem diretamente.
O problema acima pode ser amenizado de várias formas, como o uso do Unity Collab e também, versionando projetos através do Github. Mesmo mantendo o projeto versionado, é necessário manter e seguir um padrão de colaboração, para garantir que todos tenham os mesmos arquivos e estejam funcionando.
Resumidamente, precisamos de uma ‘pasta’ onde todos os arquivos funcionais estejam, enquanto outras implementações ainda em desenvolvimento e não validadas, estejam salvas em outras pastas. Ao término da implementação, pegamos o que estava na pasta de desenvolvimento e jogamos na pasta de recursos funcionais. Basicamente esse é um padrão de desenvolvimento com o Git, então, continue lendo o artigo que vou trazer explicações mais práticas.
Antes de mais nada, vamos entender duas coisas:
Git é um sistema/software de controle de versões, utilizado por desenvolvedores, a fim de controlar as alterações realizadas em sistemas e manter cópias de segurança.
Github é uma plataforma utilizada para hospedar códigos-fontes, utilizando a estrutura do Git. Com ele, é possível pegar todas as alterações e projetos do Git e hospedar no site, assim, mantendo uma cópia segura nos servidores e permitindo que outros desenvolvedores possam fazer suas contribuições.
Utilizando um software instalado em nosso computador, versionamos os projetos, criamos nossas Branches e posteriormente enviamos para o Github.
Okay, agora você já sabe o que são esses dois serviços, pelos menos na teoria, então, vamos a prática.
Primeiro, você precisa instalar o Git no seu computador, seja Windows, Linux, Mac, Unix ou qualquer outro. O site para download é https://git-scm.com/downloads. Não vou explicar como instalar, pois é um processo bem simples e nosso foco aqui não é esse, então, a partir daqui, vou presumir que você já esteja com ele instalado.
O processo de integração do Git com a Unity é bem simples, então só para recapitular, vamos criar o repositório do Git em nosso sistema e depois enviar para o servidor. O Git não depende do Github, então, podemos fazer tudo sem precisar enviar para o Github, mas essa não é a recomendação (vai que seu HD queima). Além do Github, temos o Bitbucket, Gitlab e outros servidores de hospedagem de códigos-fontes.
Vamos iniciar pelo Github, nele vamos criar nosso repositório, definir o tipo de licença e o .gitignore.
Gitignore – é um arquivo onde informamos o que não queremos commitar (enviar/salvar), nem tudo precisa ser versionado, como pastas de arquivos temporários.
Inicialmente, acesse o site https://github.com e crie uma conta (https://github.com/join), caso já tenha, então faça o login (https://github.com/login).
Na home do Github, clique no botão New, representado pela cor verde.
Na tela seguinte, é onde devemos informas os dados sobre o nosso repositório.
Repositório - É o espaço de trabalho do nosso projeto, nele vai conter os arquivos de código-fonte, histórico de versionamento e demais funcionalidades.
Não se assunte com essa nova tela, ela é bem simples. Na imagem coloquei alguns números e abaixo vou descrever o que é cada campo.
1 – Nome do nosso repositório. Não é possível atribuir um nome que já exista na sua conta.
2 – Breve descrição do seu projeto. É opcional e você pode deixar em branco, se quiser.
3 – Tipo de visibilidade, se vai ser publico ou privado. Publico permite que qualquer pessoa tenha acesso e veja o seu projeto, enquanto privado, fica oculto e somente pessoas autorizadas podem visualizar e contribuir.
4 – Inicializar o repositório com um Readme, que é um arquivo contendo instruções de utilização.
5 – Selecione o .gitignore inicial, é possível modificar depois, acrescentando ou removendo arquivos e diretórios.
6 – Selecione o tipo de licença do seu projeto.
7 – Após tudo concluído e preenchido corretamente, o botão ficará habilitado.
Depois de tudo preenchido, clique no botão verde Create repository.
Após criar o projeto, você será redirecionado para outra página, mais especificamente, para a página do seu projeto. Veja que nele contém um .gitignore, README.md e um LICENSE.
Se você chegou até aqui, então parabéns, você já tem um repositório no Github, agora você pode clonar, adicionar membros e fazer várias outras coisas.
Antes de finalizarmos, precisamos do link do nosso repositório, para isso, clique no botão verde Clone or download e copie o texto da caixa.
Pronto, nosso trabalho no Github está finalizado.
Apenas fique de olho nas precificações, existem diferentes planos com diferentes preços, https://github.com/pricing.
Vamos fazer um rápido teste antes de sincronizar nosso projeto, então, crie uma pasta qualquer no seu computador, abra a pasta, clique com o botão direito do mouse e selecione a opção Git Bash Here. Obs. Só vai aparecer após a instalação do Git.
Com o Git Bash aberto, vamos entrar com o seguinte comando: git clone link-do-seu-repositorio. Ele vai fazer com que o Git clone o seu repositório, copiando assim todos os arquivos para a pasta atual.
git clone https://github.com/satellasoft/unity-test.git
Se tudo ocorreu bem, você verá uma mensagem como mostrada na imagem acima e a pasta do seu repositório. Esse processo de clonagem deve ser realizado quando você precisar clonar o repositório (ahh vá?, dãããã”), ou seja, quando você ou outros membros da equipe precisar baixar o repositório.
Até aqui você já fez um monte de operações, leu um monte de teorias e explicações, mas ainda não tem nenhum código da Unity no seu repositório. Relaxa, chagamos lá.
Crie o seu projeto da Unity caso não tenha criado ou abra a pasta do seu projeto.
Clique com o botão direito do mouse, em seguida, clique na opção, Git Bash Here.
O que nós vamos fazer é agora, é dizer para o Git que ele deve adicionar um repositório remoto, assim, permitindo e enviando as informações para o servidor do Github.
Primeiro vamos inicializar o nosso repositório, para isso, entre com o comando: git init.
git init
Agora já temos um repositório em nossa máquina, já podemos criar branches entre outras coisas.
Uma coisa que você tem que ter em mente, é importante que você sempre tenha os mesmos arquivos que estão disponíveis no servidor antes de poder enviar algo. Se houver muitas pessoas trabalhando no projeto, então antes de enviar algo, você vai precisar baixar os arquivos que estão lá, para depois enviar. Não se preocupe, o próprio Git vai verificar a diferença entre a sua máquina local e o servidor, assim, baixando apenas as partes e arquivos diferentes.
Agora que temos o repositório, precisamos adicionar o repositório remoto, para isso, execute o seguinte comando: git remote add origin link-do-seu-repositorio.
git remote add origin https://github.com/satellasoft/unity-test.git
Em algum momento, o Git vai abrir uma janelinha solicitando o seu usuário e senha do Github, então basta entrar com as suas credencias.
Pronto, agora temos nosso projeto sincronizado.
Se você se lembra do que disse a pouco, então vai saber que temos arquivos no servidor que não estão no nosso diretório local, que é o .gitignore, README.md e o LICENSE, então, vamos entrar com o seguinte comando: git pull origin master. Ele vai fazer a cópia dos arquivos da branch master para a nossa branch master local, copiando somente os arquivos diferentes.
git pull origin master
Agora precisamos enviar nossos arquivos locais para o Github, para isso, utilize os comandos:
git add -A – Adiciona todos os arquivos/diretórios na lista a ser salva.
git commit -m “Descreva o que você está enviando” - Commita os arquivos adicionados, ou seja, salva eles na branch local.
git push origin master – Envia os arquivos commitados para o servidor do github.
git add -A
git commit -m "Projeto inicial"
git push origin master
Pronto, todos os arquivos foram enviados para o servidor e agora você já tem tudo configurado, sincronizado e pronto para utilização.
Antes de finalizar nosso tutorial, quero deixar uma forma de trabalho, que é criando branches para cada atividade. Se você perceber, nas telas do Gitbash, tem um nome master no final de cada linha, no meu caso, com a cor Azul. Esse nome refere-se a branch master, que é ramo/pacote principal, então, mantenha nele apenas tudo que estiver funcionando e finalizado, para demais atividades e outras implementações, crie uma nova branch e quanto tudo estiver finalizado e validado, mescle com a master.
Vou deixar uma lista de alguns comandos com explicações, mas lembre-se, faça testes e se familiarize com o Git antes de tentar versionar o seu projeto final.
Git é Case-Sensitive, ou seja, possui diferenças entre caracteres maiúsculos de minúsculos.
git status – Mostra o status da sua branch, lista os arquivos modificados, deletados ou criados.
git add - A - Adiciona todos as alterações (elege elas a serem fazerem parte do commit)
git commit -m “primeiro commit”– Commita os arquivos (salva eles na sua branch)
git checkout -b nome-da-sua-nova-branch – Cria uma nova branch
git checkout nome-outra-branch - Troca de Branch
git merge nome-da-branch – Mescla a branch especificada com a atual
git pull origin nome-da-branch – Baixa todos os arquivos diferentes da branch remota especificada para sua máquina
git push origin nome-da-branch – Envia os arquivos commitados para o servidor
git remote add origin link-do-repositorio – Adiciona um repositório remoto
git reset –hard origin/nome-da-branch – Descarta todas as alterações locais e deixa como no repositório remoto
Para entender mais o processo e aprender outras coisas, assista a nossa videoaula complementar.
Uffa, acabamos, deu um baita trabalho escrever esse material, gravar, editar, fazer o upload do vídeo e outros processos, então, espero que tenha gostado e que o conteúdo tenha sido útil.
Eu vou ficando por aqui e nos vemos em breve. Ahhhhhh, não esqueça de compartilhar nas suas redes sociais.
clear
exit
Saiba como ignorar arquivos no Git facilmente - https://fjorgemota.com/gitignore-ou-como-ignorar-arquivos-no-git