SlideShare uma empresa Scribd logo
1 de 55
Baixar para ler offline
Usando Git na Game Jam
Quem eu sou: Nath Cruz
● Programadora na Rogue Snail.
● Fundadora e Programadora na Utopia Game
Studio.
● Estudante de Jogos Digitais na Unisinos.
● Técnica em informática e em Programação
de Jogos Digitais.
Contato: ocruznathalia@gmail.com
Natália Cruz - Usando Git na Game Jam - Agosto 2020
Um pouco sobre a Rogue Snail
Trailer Relic Hunter Legends | Site Rogue Snail
A Rogue Snail é uma empresa
totalmente remota com integrantes
trabalhando de todo o Brasil e
também de outros países.
Estamos desenvolvendo os jogos
da franquia Relic Hunters com a
nossa própria propriedade
intelectual.
O que é o GIT e para que serve
Git é uma ferramenta de versionamento onde você consegue salvar o
estado atual do seu projeto. Praticamente é uma máquina do tempo!
Usando Git, uma equipe
grande consegue
trabalhar no mesmo
projeto e mantendo
versões diferentes
estáveis.
Natália Cruz - Usando Git na Game Jam - Agosto 2020
O que é o GIT e para que serve
Viagem no tempo: Consegue ir para um estado estável antes das
coisas pegarem fogo.
Versionamento: Chega de cópias de zip no drive de
versao_final_finalizada_aleluia.zip!
“No que vou usar isso na minha vida?”
● Salva o seu projeto de cachorros que
comem pen drive.
● Evita perda de trabalho feito caso
ocorra um problema.
● Ferramenta feita para integrar trabalho
feito por uma equipe.
● Evita perda de projeto caso ele
for corrompido ou algo
semelhante.
● Backup do projeto na nuvem.
● Empresas grandes, não
necessariamente remotas,
utilizam GIT profissionalmente.
“No que vou usar isso na minha vida?”
“E precisa em Game Jam?”
Sim, além de ter um backup e poder voltar
para uma versão mais estável caso algum
imprevisto aconteça. Utilizar repositório
minimiza o tempo levado para fazer o
famoso “depois a gente junta tudo”.
Como posso usá-lo?
Há vários clientes de GIT para várias plataformas
Fork Source Tree Github
Desktop
Tortoise Git GitKraken
Terminal
Git for Windows
● Com o terminal você tem ciência de todas as operações sendo feitas
com mais controle.
● Leve e muitas vezes mais rápido.
● Te ajuda a imaginar que está acessando a Matrix.
Clientes de GIT - Fork
Colocando seu versionamento na nuvem
● Salva seu repositório na nuvem.
● Backups.
● Colaborar com membros de um time em um mesmo projeto
simultaneamente.
https://bitbucket.org/product/ https://github.com/
Os mais usados
Natália Cruz - Usando Git na Game Jam - Agosto 2020
Características
Bitbucket:
Free para até cinco integrantes de uma equipe; 1GB de LFS.
1GB de LFS Free; colaboradores ilimitados.
Ambos serviços tem projetos privados ilimitados e pode fazer upgrades
para aumentar o storage e outros benefício.
P.S: Vamos falar sobre o LFS e sua importância depois.
Vamos por a mão na massa!
Vamos utilizar o Fork e o Github nessa workshop!
Download do Fork em: https://git-fork.com/
Cadastro no Github em: https://github.com/
Natália Cruz - Usando Git na Game Jam - Agosto 2020
Passos iniciais
● Criar uma conta no Bitbucket ou no Github.
● Depois do login, vamos criar um novo repositório.
Natália Cruz - Usando Git na Game Jam - Agosto 2020
Criando um repositório
Repositório: Pasta com
controle de versão do Git.
Clonando um repositório
Copie o link do repositório:
Clonando um repositório - Fork
File> Clone> Cole o link:
Funções importantes do Fork
Commit
Um commit é um conjunto de mudanças feitas no projeto que o usuário
queira salvar naquele estado. Um checkpoint, um save.
É ideal fazer commits frequentes para caso você queira voltar para um
estado anterior e salvá-lo.
Commitando uma mudança
Changes - Contém as mudanças feitas que não foram
commitadas.
Stage - Adiciona arquivos que tiveram mudanças relevantes
para irem possivelmente irem para o commit.
Unstage - Remove mudança que foi dado Stage.
Commitando uma mudança
Commitando uma mudança
Push - Empurrar/Upload
Depois que o commit é feito, a mudança fica salvo no repositória
apenas de forma local. As mudanças se encontram apenas na sua
máquina. Você precisa “Empurrar/Enviar” essas mudanças para a
nuvem (Github, Bitbucket ou outro serviço).
Origin/Master - É o seu branch/ramo principal na nuvem.
Master - É o seu ramo principal local em sua máquina.
P.S: Vamos falar sobre
Branch/Ramo em breve, segura aí.
Push - Empurrar/Upload
Push - Empurrar/Upload
Pull - Puxar/Baixar
Ok, e se meu colega alterou algum arquivo e eu quero atualizar o
projeto? Você precisa baixar as mudanças dos seus colegas usando o
comando Pull.
É recomendável quando você estiver trabalhando no mesmo branch
que um colega você dar Pull antes de fazer suas alterações para o Git
atualizar o projeto.
P.S: Vamos falar sobre
Branch/Ramo em breve, eu
juro!
Outras operações
Fetch - Baixa todas as mudanças e commits feitos no repositório remoto sem
afetar o seu estado local.
Stash - É uma “lixeira” para guardar mudanças temporárias caso você queira
sair de um branch e ir para outra sem perder suas mudanças atuais.
Natália Cruz - Usando Git na Game Jam - Agosto 2020
Branches
E se eu estou mexendo em uma feature que ainda está em
desenvolvimento e ainda não está estável? Como posso mandar para o
servidor sem quebrar o projeto? A resposta é criando Branches!
Branches são ramificações que apontam para estados de commits.
Usando branches você consegue
divergir do estado atual do
repositório e voltar para esse estado
anterior facilmente.
Branches são úteis para fazer uma feature mais isolada sem mudar
drasticamente o estado do projeto para que outras pessoas consigam ter
uma versão estável com segurança.
Branches
É como se você fosse um viajante
no tempo criando uma realidade
alternativa e quisesse voltar para
estabilidade caso algo desse
errado.
Criando uma Branch
Sua branch precisa sair de outra
branch/commit para ser criada.
Por padrão, a branch master já é iniciada
com o repositório.
Trocando de branch
Caso você quiser voltar para outra timeline do seu projeto onde alguma
coisa específica estava diferente, você pode mudar a vontade! Só não
esqueça de commitar suas mudanças atuais para não perdê-las caso
forem relevantes!
Antes de trocar de branch é importante dar um
Fetch para atualizar todas as branches remotas
para você não perder uma atualização.
Boas Práticas com Branches
Há boas práticas para criação de branches.
Uma delas é você fazer uma branch nova
quando trabalhar em uma Feature nova. Isso
pode te ajudar caso alguma mudança destrutiva
ocorra no seu repositório.
Trabalhar em uma branch separada da Master faz com que as mudanças da
master fiquem protegidas de mudanças instáveis. Mas também é exagero criar
um branch para cada mudança pequena.
Merge - Mesclar
E depois que você quer unir suas mudanças
estáveis com o resto do projeto?
Para isso você precisa fazer o Merge.
Merge é a união de commits mesclados em um
novo commit que guarda esse novo estado.
Natália Cruz - Usando Git na Game Jam - Agosto 2020
Merge - Mesclar
Merge é um processo que pode ser complexo em projetos grandes
com equipes grandes onde tem pessoas mexendo em coisas
simultaneamente.
Como fazer um Merge
Resolvendo conflitos em Merge
Às vezes os Merges podem ter conflitos quando as branches mescladas tiveram
mudança nos mesmos lugares:
Resolvendo conflitos em Merge
Dependendo do conflito, você pode marcar apenas as mudanças de uma das
branches. Mas quando o commit tem trechos requisitados nos dois branches,
você precisa dar Merge para mesclá-os. Ative as duas checkboxes e dê um
Merge.
Resolvendo conflitos em Merge
Resolvendo conflitos em Merge
Conflitos podem ser resolvidos com trechos de cada branch, para isso basta
passar o mouse no conflito sublinhado e dar select Left ou Right.
Resolvendo conflitos em Merge
Um trecho pode ser dado Select Left ou Select Right mas você pode editar
o texto, copiar e colar partes do outro trecho ou mudá-lo para incluir
ambos.
Resolvendo conflitos em Merge
Depois de resolvido, faça o commit normalmente e verá a mágica acontecer.
Inclusive no Fork fica visível o resultado do Merge antes de commitar.
Git Ignore
Há arquivos que você quer ignorar e não quer
commitar mudanças, principalmente quando
você trabalha com uma Engine como a Unity e
a Unreal.
Há arquivos gerados pela própria engine que
não devem entrar no commit.
Um formato de arquivo específico, um arquivo
ou um diretório inteiro pode ser ignorado.
Git Ignore
Não esqueça de fazer um commit
com o arquivo .gitignore depois de
adicionar alguma coisa no Ignore!
Git Ignore na Unity
Pastas geradas pela Unity que devem ser ignoradas:
NomeDoProjeto/Library
NomeDoProjeto/Temp
NomeDoProjeto/Logs
Também há extensões que devem ser ignoradas como: *.suo, *.tmp etc.
Veja mais em: https://github.com/github/gitignore/blob/master/Unity.gitignore
LFS significa Large File Storage e é utilizado para seu repositório lidar melhor
com formatos binários que não lidam bem com mudanças em texto como .jpg,
.psd, .mp3 etc.
Código e arquivos de texto não entram para o LFS.
Veja quais são os arquivos que precisam estar no LFS:
https://gist.github.com/nemotoo/b8a1c3a0f1225bb9231979f389fd4f3f
O que é o tal LFS que estava nos planos
do Github e Bitbucket mesmo?
O LFS precisa ser inicializado no
projeto para ser usado.
Para isso vá em:
Repository > Git LFS> Initialize Git LFS
Inicializando o LFS
Inicializando o LFS
Adicione no formato como o formato
de exemplo:
*.bla
Depois de adicionar extensões de
arquivos que você usa no projeto
aperte em Track.
Outras configurações para a Unity
Para utilizar Unity com Git, além de configurar o Ignore, há configurações
que precisam ser feitas dentro da Engine, elas se encontram em:
Edit> Project Settings:
● Meta Files: Um arquivo que a unity cria
para cada asset. Ele guarda um
identificador (id) único para reconhecer
o asset que também é gerado durante a
criação do asset. Ele fica oculto se esta
opção não é marcada, portanto, não
conseguiria ir para o versionamento
Mas o que são esses Meta Files?
Arquivo que a Unity cria para cada asset. Ele guarda um identificador (id)
único para reconhecer o asset que também é gerado durante sua criação.
Ele fica oculto se a opção Visible Meta Files não é marcada, portanto, não
conseguiria ir para o versionamento.
Outras configurações para a Unity
NÃO SE FAZ MERGE DE SCENE UTILIZANDO AS
MUDANÇAS DE DUAS BRANCHES.
Utilize prefabs, cenas separadas, Scriptable Objects
o máximo possível! Quando não puder, comunique
o time!
Arquivos binários como *.jpg, *.png também não
devem ser mesclados, use o LFS.
Saiba mais!
Tutorial de Unity com Github Desktop: https://www.youtube.com/watch?v=qpXxcvS-g3g
Documentação do Git para Terminal: https://git-scm.com/doc
Workshop de Git com Terminal:
https://drive.google.com/file/d/1LrjCba0tRgLeD0dT7LWMLe7F2SVrqKXW/view?usp=sharing
The complete guide to Unity & Git:
https://www.gamasutra.com/blogs/TimPettersen/20161206/286981/The_complete_guide_to_Unity__Git.php
Meta Files na Unity:
https://docs.unity3d.com/560/Documentation/Manual/BehindtheScenes.html
Natália Cruz - Usando Git na Game Jam - Agosto 2020
Links da palestra
Site da Rogue Snail: https://www.roguesnail.com/
Trailer do Relic Hunters Legend:https://www.youtube.com/watch?v=GW7B4zIciTI
Git Fork: https://git-fork.com/
Github: https://github.com/
Bitbucket: https://bitbucket.org/product/
Natália Cruz - Usando Git na Game Jam - Agosto 2020
Obrigada :)
Nath Cruz
Contato: ocruznathalia@gmail.com
Rogue Snail: www.roguesnail.com
Natália Cruz - Usando Git na Game Jam - Agosto 2020

Mais conteúdo relacionado

Mais procurados

Desmistificando a ferramenta git
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta gitDiogo Souza Machado
 
Git - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoGit - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoWilliam Lima
 
Tekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo ModernoTekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo ModernoMauricio Magnani Jr
 
Automação de tarefas com grunt
Automação de tarefas com gruntAutomação de tarefas com grunt
Automação de tarefas com gruntRafael Lyra
 
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOpsE se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOpsEdson Celio
 
Git e GitHub: Versionamento de Código Fácil
Git e GitHub: Versionamento de Código FácilGit e GitHub: Versionamento de Código Fácil
Git e GitHub: Versionamento de Código FácilTiago Antônio da Silva
 
Git e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHubGit e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHubBruno Orlandi
 
Workshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubWorkshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubGilson Junior
 
Use o git e perca o medo de errar
Use o git e perca o medo de errarUse o git e perca o medo de errar
Use o git e perca o medo de errarBruno Calheira
 
Como participar de projetos Open Source no Github?
Como participar de projetos Open Source no Github?Como participar de projetos Open Source no Github?
Como participar de projetos Open Source no Github?Guilherme Farias
 
Conceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoConceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoFelipe
 
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...Jadson Santos
 
Git e boas praticas!
Git e boas praticas!Git e boas praticas!
Git e boas praticas!Vitor Silva
 
git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)Carlos Duarte do Nascimento
 

Mais procurados (20)

Desmistificando a ferramenta git
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta git
 
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos BásicosGit e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
 
Git - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoGit - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotado
 
Ferramentas para versionamento Utilizando git
Ferramentas para versionamento Utilizando gitFerramentas para versionamento Utilizando git
Ferramentas para versionamento Utilizando git
 
Git
GitGit
Git
 
Tekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo ModernoTekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo Moderno
 
Automação de tarefas com grunt
Automação de tarefas com gruntAutomação de tarefas com grunt
Automação de tarefas com grunt
 
Git
GitGit
Git
 
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOpsE se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
 
Jenkins workshop
Jenkins workshopJenkins workshop
Jenkins workshop
 
Git e GitHub: Versionamento de Código Fácil
Git e GitHub: Versionamento de Código FácilGit e GitHub: Versionamento de Código Fácil
Git e GitHub: Versionamento de Código Fácil
 
Controle de versão com e git
Controle de versão com e gitControle de versão com e git
Controle de versão com e git
 
Git e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHubGit e contibuição com projetos open source usando GitHub
Git e contibuição com projetos open source usando GitHub
 
Workshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubWorkshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHub
 
Use o git e perca o medo de errar
Use o git e perca o medo de errarUse o git e perca o medo de errar
Use o git e perca o medo de errar
 
Como participar de projetos Open Source no Github?
Como participar de projetos Open Source no Github?Como participar de projetos Open Source no Github?
Como participar de projetos Open Source no Github?
 
Conceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoConceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de código
 
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
 
Git e boas praticas!
Git e boas praticas!Git e boas praticas!
Git e boas praticas!
 
git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)
 

Semelhante a Usando Git na Game Jam

Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET ComputaçãoBruno Orlandi
 
Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesLeandro Cavalcante
 
Controle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoControle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoFabricio Nogueira
 
Workshop sistema de versionamento de código - git
Workshop  sistema de versionamento de código - gitWorkshop  sistema de versionamento de código - git
Workshop sistema de versionamento de código - gitThiago Filadelfo
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao gitDiogo Gomes
 
Git github tortoise git
Git github tortoise gitGit github tortoise git
Git github tortoise gitmaxrosan
 
Controle de versões distribuído para projetos de software
Controle de versões distribuído para projetos de softwareControle de versões distribuído para projetos de software
Controle de versões distribuído para projetos de softwareGilmar Pupo
 
Migração SVN para GIT
Migração SVN para GITMigração SVN para GIT
Migração SVN para GITDenis Santos
 
Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com GitRaphael Cruzeiro
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVNLuciano Lima
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Danilo Pinotti
 
Aula 5 - Curso Git e Github - Webschool
Aula 5 - Curso Git e Github - WebschoolAula 5 - Curso Git e Github - Webschool
Aula 5 - Curso Git e Github - WebschoolBruno Orlandi
 

Semelhante a Usando Git na Game Jam (20)

Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 
Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET Computação
 
Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de Versões
 
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 
Controle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoControle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básico
 
Workshop sistema de versionamento de código - git
Workshop  sistema de versionamento de código - gitWorkshop  sistema de versionamento de código - git
Workshop sistema de versionamento de código - git
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao git
 
Git github tortoise git
Git github tortoise gitGit github tortoise git
Git github tortoise git
 
Controle de versões distribuído para projetos de software
Controle de versões distribuído para projetos de softwareControle de versões distribuído para projetos de software
Controle de versões distribuído para projetos de software
 
Migração SVN para GIT
Migração SVN para GITMigração SVN para GIT
Migração SVN para GIT
 
Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com Git
 
Introducao git fisl
Introducao git fislIntroducao git fisl
Introducao git fisl
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVN
 
Sendo um GIT master
Sendo um GIT masterSendo um GIT master
Sendo um GIT master
 
Git ao GitHub
Git ao GitHubGit ao GitHub
Git ao GitHub
 
Git e github
Git e githubGit e github
Git e github
 
Git para quem vem do SVN
Git para quem vem do SVNGit para quem vem do SVN
Git para quem vem do SVN
 
Git & GitHub for beginners
Git & GitHub for beginnersGit & GitHub for beginners
Git & GitHub for beginners
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)
 
Aula 5 - Curso Git e Github - Webschool
Aula 5 - Curso Git e Github - WebschoolAula 5 - Curso Git e Github - Webschool
Aula 5 - Curso Git e Github - Webschool
 

Usando Git na Game Jam

  • 1. Usando Git na Game Jam
  • 2. Quem eu sou: Nath Cruz ● Programadora na Rogue Snail. ● Fundadora e Programadora na Utopia Game Studio. ● Estudante de Jogos Digitais na Unisinos. ● Técnica em informática e em Programação de Jogos Digitais. Contato: ocruznathalia@gmail.com Natália Cruz - Usando Git na Game Jam - Agosto 2020
  • 3. Um pouco sobre a Rogue Snail Trailer Relic Hunter Legends | Site Rogue Snail A Rogue Snail é uma empresa totalmente remota com integrantes trabalhando de todo o Brasil e também de outros países. Estamos desenvolvendo os jogos da franquia Relic Hunters com a nossa própria propriedade intelectual.
  • 4. O que é o GIT e para que serve Git é uma ferramenta de versionamento onde você consegue salvar o estado atual do seu projeto. Praticamente é uma máquina do tempo! Usando Git, uma equipe grande consegue trabalhar no mesmo projeto e mantendo versões diferentes estáveis. Natália Cruz - Usando Git na Game Jam - Agosto 2020
  • 5. O que é o GIT e para que serve Viagem no tempo: Consegue ir para um estado estável antes das coisas pegarem fogo. Versionamento: Chega de cópias de zip no drive de versao_final_finalizada_aleluia.zip!
  • 6. “No que vou usar isso na minha vida?” ● Salva o seu projeto de cachorros que comem pen drive. ● Evita perda de trabalho feito caso ocorra um problema. ● Ferramenta feita para integrar trabalho feito por uma equipe.
  • 7. ● Evita perda de projeto caso ele for corrompido ou algo semelhante. ● Backup do projeto na nuvem. ● Empresas grandes, não necessariamente remotas, utilizam GIT profissionalmente. “No que vou usar isso na minha vida?”
  • 8. “E precisa em Game Jam?” Sim, além de ter um backup e poder voltar para uma versão mais estável caso algum imprevisto aconteça. Utilizar repositório minimiza o tempo levado para fazer o famoso “depois a gente junta tudo”.
  • 9. Como posso usá-lo? Há vários clientes de GIT para várias plataformas Fork Source Tree Github Desktop Tortoise Git GitKraken
  • 10. Terminal Git for Windows ● Com o terminal você tem ciência de todas as operações sendo feitas com mais controle. ● Leve e muitas vezes mais rápido. ● Te ajuda a imaginar que está acessando a Matrix.
  • 11. Clientes de GIT - Fork
  • 12. Colocando seu versionamento na nuvem ● Salva seu repositório na nuvem. ● Backups. ● Colaborar com membros de um time em um mesmo projeto simultaneamente. https://bitbucket.org/product/ https://github.com/ Os mais usados Natália Cruz - Usando Git na Game Jam - Agosto 2020
  • 13. Características Bitbucket: Free para até cinco integrantes de uma equipe; 1GB de LFS. 1GB de LFS Free; colaboradores ilimitados. Ambos serviços tem projetos privados ilimitados e pode fazer upgrades para aumentar o storage e outros benefício. P.S: Vamos falar sobre o LFS e sua importância depois.
  • 14. Vamos por a mão na massa! Vamos utilizar o Fork e o Github nessa workshop! Download do Fork em: https://git-fork.com/ Cadastro no Github em: https://github.com/ Natália Cruz - Usando Git na Game Jam - Agosto 2020
  • 15. Passos iniciais ● Criar uma conta no Bitbucket ou no Github. ● Depois do login, vamos criar um novo repositório. Natália Cruz - Usando Git na Game Jam - Agosto 2020
  • 16. Criando um repositório Repositório: Pasta com controle de versão do Git.
  • 17. Clonando um repositório Copie o link do repositório:
  • 18. Clonando um repositório - Fork File> Clone> Cole o link:
  • 20. Commit Um commit é um conjunto de mudanças feitas no projeto que o usuário queira salvar naquele estado. Um checkpoint, um save. É ideal fazer commits frequentes para caso você queira voltar para um estado anterior e salvá-lo.
  • 21. Commitando uma mudança Changes - Contém as mudanças feitas que não foram commitadas. Stage - Adiciona arquivos que tiveram mudanças relevantes para irem possivelmente irem para o commit. Unstage - Remove mudança que foi dado Stage.
  • 24. Push - Empurrar/Upload Depois que o commit é feito, a mudança fica salvo no repositória apenas de forma local. As mudanças se encontram apenas na sua máquina. Você precisa “Empurrar/Enviar” essas mudanças para a nuvem (Github, Bitbucket ou outro serviço). Origin/Master - É o seu branch/ramo principal na nuvem. Master - É o seu ramo principal local em sua máquina. P.S: Vamos falar sobre Branch/Ramo em breve, segura aí.
  • 27. Pull - Puxar/Baixar Ok, e se meu colega alterou algum arquivo e eu quero atualizar o projeto? Você precisa baixar as mudanças dos seus colegas usando o comando Pull. É recomendável quando você estiver trabalhando no mesmo branch que um colega você dar Pull antes de fazer suas alterações para o Git atualizar o projeto. P.S: Vamos falar sobre Branch/Ramo em breve, eu juro!
  • 28. Outras operações Fetch - Baixa todas as mudanças e commits feitos no repositório remoto sem afetar o seu estado local. Stash - É uma “lixeira” para guardar mudanças temporárias caso você queira sair de um branch e ir para outra sem perder suas mudanças atuais. Natália Cruz - Usando Git na Game Jam - Agosto 2020
  • 29. Branches E se eu estou mexendo em uma feature que ainda está em desenvolvimento e ainda não está estável? Como posso mandar para o servidor sem quebrar o projeto? A resposta é criando Branches! Branches são ramificações que apontam para estados de commits. Usando branches você consegue divergir do estado atual do repositório e voltar para esse estado anterior facilmente.
  • 30. Branches são úteis para fazer uma feature mais isolada sem mudar drasticamente o estado do projeto para que outras pessoas consigam ter uma versão estável com segurança. Branches É como se você fosse um viajante no tempo criando uma realidade alternativa e quisesse voltar para estabilidade caso algo desse errado.
  • 31. Criando uma Branch Sua branch precisa sair de outra branch/commit para ser criada. Por padrão, a branch master já é iniciada com o repositório.
  • 32. Trocando de branch Caso você quiser voltar para outra timeline do seu projeto onde alguma coisa específica estava diferente, você pode mudar a vontade! Só não esqueça de commitar suas mudanças atuais para não perdê-las caso forem relevantes! Antes de trocar de branch é importante dar um Fetch para atualizar todas as branches remotas para você não perder uma atualização.
  • 33. Boas Práticas com Branches Há boas práticas para criação de branches. Uma delas é você fazer uma branch nova quando trabalhar em uma Feature nova. Isso pode te ajudar caso alguma mudança destrutiva ocorra no seu repositório. Trabalhar em uma branch separada da Master faz com que as mudanças da master fiquem protegidas de mudanças instáveis. Mas também é exagero criar um branch para cada mudança pequena.
  • 34. Merge - Mesclar E depois que você quer unir suas mudanças estáveis com o resto do projeto? Para isso você precisa fazer o Merge. Merge é a união de commits mesclados em um novo commit que guarda esse novo estado. Natália Cruz - Usando Git na Game Jam - Agosto 2020
  • 35. Merge - Mesclar Merge é um processo que pode ser complexo em projetos grandes com equipes grandes onde tem pessoas mexendo em coisas simultaneamente.
  • 36. Como fazer um Merge
  • 37. Resolvendo conflitos em Merge Às vezes os Merges podem ter conflitos quando as branches mescladas tiveram mudança nos mesmos lugares:
  • 38. Resolvendo conflitos em Merge Dependendo do conflito, você pode marcar apenas as mudanças de uma das branches. Mas quando o commit tem trechos requisitados nos dois branches, você precisa dar Merge para mesclá-os. Ative as duas checkboxes e dê um Merge.
  • 40. Resolvendo conflitos em Merge Conflitos podem ser resolvidos com trechos de cada branch, para isso basta passar o mouse no conflito sublinhado e dar select Left ou Right.
  • 41. Resolvendo conflitos em Merge Um trecho pode ser dado Select Left ou Select Right mas você pode editar o texto, copiar e colar partes do outro trecho ou mudá-lo para incluir ambos.
  • 42. Resolvendo conflitos em Merge Depois de resolvido, faça o commit normalmente e verá a mágica acontecer. Inclusive no Fork fica visível o resultado do Merge antes de commitar.
  • 43. Git Ignore Há arquivos que você quer ignorar e não quer commitar mudanças, principalmente quando você trabalha com uma Engine como a Unity e a Unreal. Há arquivos gerados pela própria engine que não devem entrar no commit. Um formato de arquivo específico, um arquivo ou um diretório inteiro pode ser ignorado.
  • 44. Git Ignore Não esqueça de fazer um commit com o arquivo .gitignore depois de adicionar alguma coisa no Ignore!
  • 45. Git Ignore na Unity Pastas geradas pela Unity que devem ser ignoradas: NomeDoProjeto/Library NomeDoProjeto/Temp NomeDoProjeto/Logs Também há extensões que devem ser ignoradas como: *.suo, *.tmp etc. Veja mais em: https://github.com/github/gitignore/blob/master/Unity.gitignore
  • 46. LFS significa Large File Storage e é utilizado para seu repositório lidar melhor com formatos binários que não lidam bem com mudanças em texto como .jpg, .psd, .mp3 etc. Código e arquivos de texto não entram para o LFS. Veja quais são os arquivos que precisam estar no LFS: https://gist.github.com/nemotoo/b8a1c3a0f1225bb9231979f389fd4f3f O que é o tal LFS que estava nos planos do Github e Bitbucket mesmo?
  • 47. O LFS precisa ser inicializado no projeto para ser usado. Para isso vá em: Repository > Git LFS> Initialize Git LFS
  • 49. Inicializando o LFS Adicione no formato como o formato de exemplo: *.bla Depois de adicionar extensões de arquivos que você usa no projeto aperte em Track.
  • 50. Outras configurações para a Unity Para utilizar Unity com Git, além de configurar o Ignore, há configurações que precisam ser feitas dentro da Engine, elas se encontram em: Edit> Project Settings: ● Meta Files: Um arquivo que a unity cria para cada asset. Ele guarda um identificador (id) único para reconhecer o asset que também é gerado durante a criação do asset. Ele fica oculto se esta opção não é marcada, portanto, não conseguiria ir para o versionamento
  • 51. Mas o que são esses Meta Files? Arquivo que a Unity cria para cada asset. Ele guarda um identificador (id) único para reconhecer o asset que também é gerado durante sua criação. Ele fica oculto se a opção Visible Meta Files não é marcada, portanto, não conseguiria ir para o versionamento.
  • 52. Outras configurações para a Unity NÃO SE FAZ MERGE DE SCENE UTILIZANDO AS MUDANÇAS DE DUAS BRANCHES. Utilize prefabs, cenas separadas, Scriptable Objects o máximo possível! Quando não puder, comunique o time! Arquivos binários como *.jpg, *.png também não devem ser mesclados, use o LFS.
  • 53. Saiba mais! Tutorial de Unity com Github Desktop: https://www.youtube.com/watch?v=qpXxcvS-g3g Documentação do Git para Terminal: https://git-scm.com/doc Workshop de Git com Terminal: https://drive.google.com/file/d/1LrjCba0tRgLeD0dT7LWMLe7F2SVrqKXW/view?usp=sharing The complete guide to Unity & Git: https://www.gamasutra.com/blogs/TimPettersen/20161206/286981/The_complete_guide_to_Unity__Git.php Meta Files na Unity: https://docs.unity3d.com/560/Documentation/Manual/BehindtheScenes.html Natália Cruz - Usando Git na Game Jam - Agosto 2020
  • 54. Links da palestra Site da Rogue Snail: https://www.roguesnail.com/ Trailer do Relic Hunters Legend:https://www.youtube.com/watch?v=GW7B4zIciTI Git Fork: https://git-fork.com/ Github: https://github.com/ Bitbucket: https://bitbucket.org/product/ Natália Cruz - Usando Git na Game Jam - Agosto 2020
  • 55. Obrigada :) Nath Cruz Contato: ocruznathalia@gmail.com Rogue Snail: www.roguesnail.com Natália Cruz - Usando Git na Game Jam - Agosto 2020