O documento discute o controle de versão Git e como ele pode ser usado para colaboração em projetos. Ele fornece instruções sobre como configurar e inicializar um repositório Git local e realizar commits para armazenar alterações.
5. A PRINCESA FOI CAPTURADA
OS HERÓIS SURGEM
REQUISITOS
§ Cadastro de heróis
§ Cadastro de times
§ Cadastro de masmorras (dungeons)
§ Envio de times a masmorras
§ Times devem batalhar entre si
REGRAS UTILIZADAS
Manual 3D&T de Marcelo Cassaro
6. DUNGEON CRAWLER
Dungeon
Character Team
Battle
Monte os seus personangens: goo.gl/qoRFp
7. REGRAS - Criação de Personagens
PERSONAGENS
§ Máximo de 7 pontos em características;
§ Máximo 5 em um atributo;
§ Pontos de Vida são calculados com base na
resistência (resistência x 1d);
8. REGRAS - Batalhas
PERSONAGENS
1. Jogadores jogam um dado. O maior valor inicia o combate;
2. Quem tem a iniciativa ataca. O dano é calculado em força ou poder de fogo x d6;
3. O oponente defende. A defesa é calculada pela armadura x d6;
4. Os pontos de vida são reduzidos pela diferença: ataque - defesa;
5. O oponente ataca;
6. Aquele que for nocauteada (pontos de vida menor que zero) é o perdedor;
12. INICIALIZANDO GIT
Execute no terminal
Configuração do seu usuário git.
$
git
config
-‐-‐global
user.name
"Marco
Antonio
Filho"
$
git
config
-‐-‐global
user.email
"marcoafilho@gmail.com"
$
git
config
-‐-‐global
color.ui
true
Inicialize o seu projeto
$
mkdir
save-‐the-‐princess
$
cd
save-‐the-‐princess
$
git
init
13. MARKDOWN
CONVERSOR TEXTO-HTML
Útil para documentação simples de uma plataforma.
Um
cabeçalho
de
nível
1
=======================
Um
cabeçalho
de
nível
2
-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐
Isso
é
um
paragráfo
e
abaixo
é
uma
lista
*
Item
1
*
Item
2
*
Item
3
14. EXERCÍCIO 30 MIN
OBJETIVO
Configurar e inicializar um repositório local e adicionar alguns arquivos
MÉTODO
§ Configurar git com o seu usuário (dica: git config);
§ Inicializar um repositório dentro da pasta do seu projeto (dica: git init);
§ Escrever um arquivo README.md explicando o que é o programa (dica: google markdown);
§ Criar uma página html que contenha uma lista de personagens (characters);
§ Nome (Name) e Classe (Class);
§ Força (Strength), Habilidade (Skill), Resistência (Resistance), Armadura (Armor), Poder de Fogo (Fire Power);
16. FLUXO GIT
LOCAL REMOTO
Working directory Staging Area Local Repository Remote Repository
git
add
git
commit
git
push
git
pull
git
checkout
git
merge
17. GIT STATUS
VERIFICA O ESTADO CORRENTE DO DIRETÓRIO
$
git
status
#
On
branch
master
#
#
Initial
commit
#
#
Untracked
files:
#
(use
"git
add
<file>..."
to
include
in
what
will
be
committed)
#
#
README.md
#
characters_index.html
18. ADICIONANDO AO PALCO
DEVEMOS COMEÇAR A RASTREAR AS MUDANÇAS
$
git
add
README.md
characters_index.html
$
git
status
#
On
branch
master
#
#
Initial
commit
#
#
Changes
to
be
committed:
#
(use
"git
rm
-‐-‐cached
<file>..."
to
unstage)
#
#
new
file:
README.md
#
new
file:
characters_index.html
#
19. ARMAZENANDO UMA FOTO
GUARDANDO UMA FOTO NO REPOSITÓRIO LOCAL
$
git
commit
-‐m
"Initial
commit"
$
git
status
#
On
branch
master
nothing
to
commit
(working
directory
clean)
20. EXERCÍCIO 30 MIN
OBJETIVO
Armazenar arquivos no repositório local através de commits
MÉTODO
§ Adicionar arquivos para a staging area (dica: git add);
§ Salvar alterações no repositório local (dica: git commit);
§ Criar uma página com a lista de masmoras (dungeons);
§ Nome (Name);
§ Navegação entre masmorras e personagens;
§ Realizar mesmo processo para salvar alterações no repositório local;
§ Bônus: Adicionar css à página.
21. HISTÓRICO
É POSSÍVEL VER QUAIS AS ALTERAÇÕES FEITAS
$
git
log
commit
19dd00d4913497107ef6de07e0ee00a9b9315304
Author:
Marco
Antonio
Filho
<marcoafilho@gmail.com>
Date:
Thu
Apr
11
02:51:03
2013
-‐0300
Creating
index
and
modifying
README.md
commit
a44995e61542e54aa88e55908cf09133578a43f6
Author:
Marco
Antonio
Filho
<marcoafilho@gmail.com>
Date:
Thu
Apr
11
02:37:13
2013
-‐0300
Initial
commit
22. FLUXO GIT
LOCAL REMOTO
Working directory Staging Area Local Repository Remote Repository
git
add
git
commit
git
push
git
pull
git
checkout
git
merge
24. DIFERENÇAS ENTRE COMMITS
PODEMOS VER O QUE MODIFICAMOS EM RELAÇÃO AO REPOSITÓRIO LOCAL
$
git
diff
diff
-‐-‐git
a/README.md
b/README.md
index
9d1d09d..61f26f8
100644
-‐-‐-‐
a/README.md
+++
b/README.md
@@
-‐1,2
+1,4
@@
My
dungeon
crawlers
===================
+
+A
warrior
should
fight
with
his
heart
instead
of
his
sword.
$
git
add
README.md
$
git
diff
25. ADD ACIDENTAL
COMO FAZER PARA REMOVER ARQUIVOS ADICIONADOS ACIDENTALMENTE?
$
git
status
#
On
branch
master
#
Changes
to
be
committed:
#
(use
"git
reset
HEAD
<file>..."
to
unstage)
#
#
modified:
README.md
#
$
git
reset
HEAD
README.md
Unstaged
changes
after
reset:
M
README.md
26. DESCARTANDO MODIFICAÇÕES
E SE EU QUISER VOLTAR COMO ESTAVA ANTES?
$
git
status
#
On
branch
master
#
Changes
not
staged
for
commit:
#
(use
"git
add
<file>..."
to
update
what
will
be
committed)
#
(use
"git
checkout
-‐-‐
<file>..."
to
discard
changes
in
working
directory)
#
#
modified:
README.md
#
no
changes
added
to
commit
(use
"git
add"
and/or
"git
commit
-‐a")
$
git
checkout
-‐-‐
README.md
$
git
status
27. REFAZENDO COMMITS
E SE EU ESQUECI DE ADICIONAR ALGUMA COISA?
$
git
reset
-‐-‐soft
HEAD^
$
git
status
#
On
branch
master
#
Changes
to
be
committed:
#
(use
"git
reset
HEAD
<file>..."
to
unstage)
#
#
modified:
README.md
#
new
file:
dungeons_index.html
#
28. ADICIONANDO A UM COMMIT
E SE EU ESQUECI DE ADICIONAR ALGUMA COISA?
$
git
add
dungeon_new.html
$
git
commit
-‐-‐amend
-‐m
"Adding
dungeon
index
and
form"
33. ADICIONANDO O SERVIDOR REMOTO
PRECISAMOS DEFINIR QUEM VAI SER O NOSSO SERVIDOR CENTRAL
$
git
remote
add
origin
https://github.com/<user>/<project>.git
$
git
push
-‐u
origin
master
PARA QUE AS PESSOAS PEGUEM AS MODIFICAÇÕES DO REPOSITÓRIO REMOTO
$
git
pull
PARA QUE AS PESSOAS PEGUEM O REPOSITÓRIO REMOTO
$
git
clone
https://github.com/<user>/<project>.git
[<folder>]
34. EXERCÍCIO 30 MIN
OBJETIVO
Crie um repositório remoto e colabore com o do colega
MÉTODO
§ Crie o seu repositório no github e envie o seu código (dica: git remote e git push);
§ Adicione o colega do seu lado como colaborador como colaborador;
§ Crie uma cópia do repositório do seu colega (dica: git clone);
§ Sem contar o que está fazendo, faça as alterações que desejar no projeto dele;
§ Envie as suas alterações para o github (dica: git push);
§ Volte para o diretório do seu projeto e pegue as alterações feitas pelo seu colega (dica: git pull);
§ Identifique as alterações feitas sem perguntar para o colega que as modificou.
36. BRANCHES
É MELHOR CRIAR FUNCIONALIDADES EM BRANCHES
$
git
branch
char
LISTAR BRANCHES
$
git
branch
HEAD
char
*
master
CHAR
ACESSAR BRANCH
$
git
checkout
char
Switched
to
branch
'char'
MASTER
37. EXERCÍCIO 15 MIN
OBJETIVO
Crie uma branch e nessa branch crie um formulário para characters
MÉTODO
§ Crie uma branch (dica: git branch);
§ Vá para a branch (dica: git checkout);
§ Crie um formulário para salvar personagens;
§ Faça o commit dessa funcionalidade;
§ Volte para a branch master.
§ O que foi que aconteceu?
38. MERGE BRANCHES
TERMINAMOS A FUNÇÃO CHAR. É HORA DE FUNDIR AS BRANCHES
$
git
checkout
master
HEAD
$
git
merge
char
Updating
c8541d6..a226599
Fast-‐forward
0
files
changed,
0
insertions(+),
0
deletions(-‐)
create
mode
100644
chars_new.html
CHAR
REMOVER BRANCH
$
git
branch
-‐d
char
MASTER
39. RESOLVENDO CONFLITOS
E QUANDO DUAS PESSOAS MEXEM NO MESMO ARQUIVO?
$
git
push
!
[rejected]
master
-‐>
HEAD
master
(non-‐fast-‐forward)
IMPORTANTE! REALIZAR GIT PULL ANTES DE GIT PUSH! char.html
ARQUIVO COM CONFLITO!
CHAR
$
git
pull
CONFLICT
(content):
Merge
conflict
in
char.html
MASTER
40. RESOLVENDO CONFLITOS
ARQUIVO COM CONFLITO Seu repositório
<<<<<<<
HEAD
<title>DungeonCrawlers
Generations</title>
=======
<title>Dungeon
Crawlers</title>
>>>>>>>
7a61a9b596cdd07120e36f4f916ee65036d5c179
Repositório remoto
FIX, COMMIT AND PUSH!!!
41. EXERCÍCIO 15 MIN
OBJETIVO
Resolvendo conflitos no seu repositório
MÉTODO
§ Combine em uma linha para que o seu colega faça uma modificação;
§ Faça uma modificação na mesma linha;
§ Faça um commit e push no repositório do seu colega;
§ Faça um commit e pull no seu repositório;
§ Tente agora resolver o conflito;
§ Quando o arquivo estiver corrigido, faça commit e push.