Skip to content

VideojogosLusofona/unity_git

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CC BY-SA 4.0

Guia para uso de Git em projetos Unity

Este guia assume que o seguinte software está instalado num sistema Windows 10:

Alguns detalhes poderão ser ligeiramente diferentes em Mac e Linux.

Configuração dos projetos Unity

Confirmar as seguintes definições em cada novo projeto no Unity (em princípio são as definições por omissão):

  • Edit → Project Settings → Version Control
    1. Mode → Visible Meta Files
  • Edit → Project Settings → Editor
    1. Asset Serialization, Mode → Force Text
  • Edit → Project Settings → Player
    1. API Compatibility Level → .NET Standard 2.1

Configuração do Git

Ficheiros de configuração

Colocar na pasta raiz do projeto Unity os seguintes ficheiros:

  • .gitignore - Indica ficheiros temporários a ignorar, ou seja, que não serão guardados no repositório.
  • .gitattributes - Entre outras coisas, indica ficheiros a guardar em modo Git LFS, nomeadamente ficheiros binários (imagens, sons, texturas, vídeos, etc).

A forma mais simples de o fazer é abrir cada um dos links no browser e fazer CTRL+S para salvar cada um dos ficheiros. Os ficheiros devem ser guardados na pasta raiz do projeto Unity e devem ter exatamente os nomes .gitignore e .gitattributes.

Inicializar repositório

Abrir Git Bash na pasta do projeto (ou fazer cd até à pasta do projeto), e inicializar o repositório Git com o seguinte comando:

  • git init

Inicializar Git LFS para o repositório criado:

  • git lfs install

Configuração para gestão de merge conflicts

Configuração ao nível do Git

Na pasta do projeto editar ficheiro config na pasta .git e colocar o seguinte no fim do mesmo (confirma que o caminho completo até à ferramenta UnityYAMLMerge está correto - nota que são necessário duas barras entre cada pasta):

[merge]
	tool = unityyamlmerge
[mergetool "unityyamlmerge"]
	trustExitCode = false
	cmd = 'C:\\Program Files\\Unity\\Hub\\Editor\\2018.3.0f2\\Editor\\Data\\Tools\\UnityYAMLMerge.exe' merge -p "$BASE" "$REMOTE" "$LOCAL" "$MERGED"
[mergetool]
	keepBackup = false

Se a instalação do Unity onde se encontra a ferramenta UnityYAMLMerge for removida, é necessário atualizar o ficheiro .git\config para procurar a ferramenta na nova instalação do Unity.

Configuração ao nível do Unity

A mesma pasta que contém a ferramenta UnityYAMLMerge contém também o seu ficheiro de configuração, de nome mergespecfile.txt. Abrir este ficheiro com o Notepad++ e substituir as linhas:

unity use "%programs%\YouFallbackMergeToolForScenesHere.exe" "%l" "%r" "%b" "%d"
prefab use "%programs%\YouFallbackMergeToolForPrefabsHere.exe" "%l" "%r" "%b" "%d"

por

unity use "%programs%/KDiff3/kdiff3.exe" "%b" "%l" "%r" -o "%d"
prefab use "%programs%/KDiff3/kdiff3.exe" "%b" "%l" "%r" -o "%d"
* use "%programs%/KDiff3/kdiff3.exe" "%b" "%l" "%r" -o "%d"

São necessárias permissões de administrador para alterar o ficheiro. Ao guardar o ficheiro o Notepad++ pergunta se queres abrir o mesmo com permissões de administrador. Confirma, volta a inserir as modificações e guarda o ficheiro.

Se a instalação do Unity onde se encontra o ficheiro mergespecfile.txt for removida, é necessário modificar o ficheiro mergespecfile.txt da nova instalação do Unity de igual forma.

Fazer merge de ramos diferentes em projetos Unity

Por exemplo, se estivermos no ramo master e quisermos fazer merge do ramo new-boss, vamos executar o seguinte comando git merge new-boss. Se existirem conflitos que o Git não conseguir resolver, o resultado vai ser algo do género:

Auto-merging Assets/Scenes/MyScene.unity
CONFLICT (content): Merge conflict in Assets/Scenes/MyScene.unity
Automatic merge failed; fix conflicts and then commit the result.

Para resolver os conflitos, vamos invocar a ferramenta configurada para o efeito com o comando git mergetool. A maioria dos conflitos é resolvida automaticamente. No caso dos conflitos não resolvidos será aberta uma janela do KDiff3, tendo o utilizador apenas de especificar, para cada conflito, se quer utilizar as modificações do ramo master ou do ramo new-boss, e guardar essas escolhas. Os conflitos são marcados como resolvidos e basta fazer git commit para finalizar o merge.

Configurar Git para usar Notepad++ nas mensagens de commit

Por omissão o Git usa o editor Vim para as mensagens de commit. No entanto, é muito mais prático usar um editor como o Notepad++. O seguinte comando configura o Git para usar o Notepad++ nas mensagens de commit (assume-se que o Notepad++ está instalado na pasta indicada, caso contrário alterar em conformidade):

git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Uma vez que é especificada a opção --global, basta executar este comando uma vez para que o Notepad++ fique configurado para todos os repositórios Git de um dado utilizador no mesmo PC.

Referências

About

Guia para uso de Git em projetos Unity

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published