git e gitlab por samir c costa iplanfor
TRANSCRIPT
![Page 1: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/1.jpg)
1
GIT E GITLABPARA UM DESENVOLVIMENTO
EFICIENTECriado por @ Samir C. Costa Instituto de Planejamento de Fortaleza
![Page 2: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/2.jpg)
2
SUMÁRIO1. Sobre o Git2. Quem usa Git?3. Por que o Git é tão bom?4. Noções Básicas de Git
1. Teoria2. Branching3. Configuração básica4. Comandos básicos5. Desfazendo 'noobiadas'6. Integrando Branches7. Resolvendo conflitos
5. Git flow6. Entrega contínua de software7. Cultura DevOps8. GitLab Community Edition (CE)9. Exercícios de fixação
10. Referências
![Page 3: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/3.jpg)
3
SOBRE O
Autor original: Linus TorvaldsRelease inicial: 7 de abril de 2005 (~ 10 anos)Licença: GNU General Public License v2Site oficial: https://git-scm.com
man page descreve Git como "the stupid content tracker"git é uma gíria em inglês britânico para cabeça dura
![Page 4: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/4.jpg)
4
QUEM USA GIT?
![Page 5: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/5.jpg)
5
QUEM USA GIT?e...
DISIN[nós]
![Page 6: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/6.jpg)
6
POR QUE GIT É TÃO BOM?tudo é localé rápidoé pequenodistribuídovários workflowsfácil de aprendergrande comunidade
![Page 7: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/7.jpg)
7
NOÇÕES BÁSICAS DE
![Page 8: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/8.jpg)
8 . 1
SNAPSHOTS, E NÃO DIFERENÇAS
![Page 9: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/9.jpg)
8 . 2
SNAPSHOTS, E NÃO DIFERENÇASsnapshots : captura de algo em um determinado instante,
como em uma foto.
SVN Git
![Page 10: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/10.jpg)
9
DESCENTRALIZADO, MASCENTRALIZADO
![Page 11: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/11.jpg)
10
TEM INTEGRIDADEGit usa o hash SHA-1 para fazer o checksumstring de 40 caracteres
caracteres hexadecimais (0-9 e a-f)
$ g i t l o g
c o m m i t c 8 f 4 3 4 7 f 9 d 3 e c d 3 1 1 e 8 9 4 1 c a d 3 c 9 8 0 2 e 7 2 0 3 8 e 8 4 A u t h o r : S a m i r C o s t a < s a m i r . c o u t i n h o @ f o r t a l e z a . c e . g o v . b r > D a t e : T u e F e b 1 6 1 7 : 2 5 : 2 0 2 0 1 6 - 0 3 0 0
b a r r a d e p e s q u i s a o c u l t a d a
![Page 12: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/12.jpg)
11
PRODUTIVIDADEtem manual de cada comando
$ m a n g i t f e t c h
autocompletamento (TAB)
![Page 13: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/13.jpg)
1213
OS TRÊS ESTADOS FUNDAMENTAIS
modificado → modified
preparado → staged
consolidado → committed
![Page 14: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/14.jpg)
14
AS TRÊS SEÇÕES PRINCIPAIS
![Page 15: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/15.jpg)
15
GLOSSÁRIO ESSENCIAL
HEADrepresenta o snapshot/posição de um branch
ORIGINnome padrão que o Git dá ao servidor de onde você fez oclone
![Page 16: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/16.jpg)
16
BRANCHé essencialmente uma linha independente dedesenvolvimentoajuda a isolar seu trabalho dos outros membros da equipedesenvolvimento em paralelo sem dores de cabeçacódigo antigo intacto até saber se o novo funcionasempre confira se existe algum commit à frente antes decomeçar a trabalhar
![Page 17: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/17.jpg)
17
TIPOS DE BRANCH (BRANCHING)Principais
masterdevelop
De apoiofeaturehotfixrelease
![Page 18: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/18.jpg)
18
BRANCHINGPRINCIPAIS
masterrecebe código de produção provido de uma releasebranchbranch integrada (automatizada com hook)
![Page 19: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/19.jpg)
19
BRANCHINGPRINCIPAIS
developrecebe código sem erros de sintaxe ou compilaçãooriunto das features branchsnele são executados testes no sistema como um todopara verificar se algum código quebrou outro.
![Page 20: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/20.jpg)
20
BRANCHINGDE APOIO
featuresempre crie uma antes de iniciar a codificaçãofaça sua arte neste branchfaça commits curtos e frequentesfaça rebase frequentemente para trazer as mudançasdo ramo developramifique ainda maisnormalmente existem apenas nos repositórios dosdesenvolvedorestem vida curtaapague as antigas sem uso
![Page 21: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/21.jpg)
21
BRANCHINGDE APOIO
hotfixhotfixes surgem da necessidade de agir imediatamentesobre uma situação indesejada na versão de produçãoativapode ser criado a partir da tag correspondente nobranch master que indica a versão em produção
![Page 22: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/22.jpg)
22
BRANCHINGDE APOIO
releasecada vez que necessite de um merge no master, é umnovo release por definiçãoauxilia a preparação de uma nova versão de produçãopermite correções de bugs menores e a preparação demetadados de uma versão
![Page 23: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/23.jpg)
23
PORTANTONUNCA commit direto no masterNUNCA commit direto no developsó faça merge neleso ideal quando em equipe: merge request
![Page 24: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/24.jpg)
24
CONFIGURANDO O GITOnde?
~ / . g i t c o n f i g
Sua identidade
$ g i t c o n f i g - - g l o b a l u s e r . n a m e " P e t e r P e d r o " $ g i t c o n f i g - - g l o b a l u s e r . e m a i l p e t e r . p e d r o @ f o r t a l e z a . c e . g o v . b r
![Page 25: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/25.jpg)
25
DICA DO CHEFE
Clonando fora da rede da prefeitura
g i t c l o n e h t t p : / / h o s t g i t : 3 2 0 0 0 / i p l a n f o r / s a l a - s e t o r i a l . g i t
Macete do bower
g i t c o n f i g - - g l o b a l u r l . " h t t p s : / / " . i n s t e a d O f g i t : / /
![Page 26: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/26.jpg)
26
COMANDOS BÁSICOS DO GIT# V a i p a r a o b r a n c h m a s t e r g i t c h e c k o u t m a s t e r
# B a i x a a s ú l t i m a s m o d i f i c a ç õ e s n o p r o j e t o # ( R E M O T E : o r i g i n ) # ( N A M E - O F - B R A N C H : p o d e s e r " m a s t e r " o u u m b r a n c h e x i s t e n t e ) g i t p u l l R E M O T E N A M E - O F - B R A N C H - u
# C r i a u m b r a n c h g i t c h e c k o u t - b N A M E - O F - B R A N C H
# V a i p a r a o b r a n c h r e c é m - c r i a d o g i t c h e c k o u t N A M E - O F - B R A N C H
# V ê a s m u d a n ç a s r e a l i z a d a s g i t s t a t u s
![Page 27: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/27.jpg)
27
COMANDOS BÁSICOS DO GIT# A d i c i o n a m u d a n ç a s n o s t a g e p a r a ' c o m i t a r ' g i t a d d C H A N G E S g i t c o m m i t - m " D E S C R I B E T H E I N T E N T I O N O F T H E C O M M I T "
# E n v i a a s m u d a n ç a s p a r a o g i t l a b g i t p u s h R E M O T E N A M E - O F - B R A N C H
# D e l e t a t o d a s a s m u d a n ç a s g i t c h e c k o u t .
# D e l e t a t o d a s a s m u d a n ç a s i n c l u s i v e a r q u i v o s n ã o r a s t r e a d o s g i t c l e a n - f
# T r a z a s m u d a n ç a s d o m a s t e r p a r a s u a b r a n c h # v o c ê p r e c i s a e s t a r n o b r a n c h c r i a d o g i t c h e c k o u t N A M E - O F - B R A N C H g i t m e r g e m a s t e r
![Page 28: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/28.jpg)
28 . 1
CRIANDO UM PROJETO# T r a n s f o r m a o d i r e t ó r i o a t u a l e m u m r e p o s i t ó r i o G i t # P a s t a . g i t é a d i c i o n a d a g i t i n i t
# I n i c i a l i z a u m r e p o s i t ó r i o v a z i o , m a s o m i t e o d i r e t ó r i o d e t r a b a l h o g i t i n i t - - b a r e
OBTENDO UM PROJETOg i t c l o n e < u r l >
![Page 29: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/29.jpg)
28 . 2
CRIANDO UM PROJETOFLAG BARE
![Page 30: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/30.jpg)
29
SALVANDO ALTERAÇÕESgit add
# P õ e < f i l e > n o s t a g e g i t a d d < f i l e >
# P õ e < d i r > n o s t a g e g i t a d d < d i r >
# I n t e r a t i v a m e n t e , a d i c i o n a o c o n t e ú d o d a p a s t a a t u a l n o s t a g e g i t a d d - p
![Page 31: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/31.jpg)
30
SALVANDO ALTERAÇÕESgit commit
# A b r e o e d i t o r p a d r ã o p a r a q u e a m e n s a g e m s e j a e s c r i t a g i t c o m m i t
# N ã o a b r e o e d i t o r e j á p r o c e s s a o c o m m i t g i t c o m m i t - m ' < m e s s a g e m > '
# C o m m i t c o m t o d a s a s a l t e r a ç õ e s r e a l i z a d a s n o d i r e t ó r i o d e t r a b a l h o . # A p e n a s a r q u i v o s r a s t r e a d o s g i t c o m m i t - a
![Page 32: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/32.jpg)
31
INSPECIONANDO UMREPOSITÓRIO
git status
# O n b r a n c h m a s t e r # C h a n g e s t o b e c o m m i t t e d : # ( u s e " g i t r e s e t H E A D < f i l e > . . . " t o u n s t a g e ) # # m o d i f i e d : h e l l o . p y # # C h a n g e s n o t s t a g e d f o r c o m m i t : # ( u s e " g i t a d d < f i l e > . . . " t o u p d a t e w h a t w i l l b e c o m m i t t e d ) # ( u s e " g i t c h e c k o u t - - < f i l e > . . . " t o d i s c a r d c h a n g e s i n w o r k i n g d i . . . # # m o d i f i e d : m a i n . p y # # U n t r a c k e d f i l e s : # ( u s e " g i t a d d < f i l e > . . . " t o i n c l u d e i n w h a t w i l l b e c o m m i t t e d ) # # h e l l o . p y c
![Page 33: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/33.jpg)
32
INSPECIONANDO UMREPOSITÓRIO
git status
EXEMPLO# E d i t e i h e l l o . p y
g i t s t a t u s # h e l l o . p y f o i l i s t a d o c o m o " C h a n g e s n o t s t a g e d f o r c o m m i t "
g i t a d d h e l l o . p y
g i t s t a t u s # h e l l o . p y f o i l i s t a d o c o m o " C h a n g e s t o b e c o m m i t t e d "
g i t c o m m i t
g i t s t a t u s # n a d a p a r a c o m m i t ( d i r e t ó r i o d e t r a b a l h o l i m p o )
![Page 34: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/34.jpg)
33
INSPECIONANDO UMREPOSITÓRIO
git log
# M o s t r a o s ú l t i m o s n c o m m i t s g i t l o g - n < l i m i t >
# M o s t r a u m c o m m i t p o r l i n h a g i t l o g - - o n e l i n e
# F i l t r a c o m m i t s p o r u m p a d r ã o e s p e c í f i c o g i t l o g - - g r e p = " < p a d r a o > "
# F i l t r a c o m m i t s d e u m s n a p s h o t a o u t r o g i t l o g < c o m m i t _ d e s d e > . . < c o m m i t _ a t e >
# M o s t r a l o g a p e n a s d e u m a r q u i v o e m p a r t i c u l a r g i t l o g < f i l e >
# L o g " g r á f i c o " v i s u a l m e n t e b o n i t o ( i n t e r e s s a n t e f a z e r u m a l i a s ) g i t l o g - - g r a p h - - d e c o r a t e - - o n e l i n e
![Page 35: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/35.jpg)
34
ALIASES$ g i t c o n f i g - - g l o b a l a l i a s . l a s t ' l o g - 1 H E A D '
$ g i t l a s t A u t h o r : S a m i r C o s t a < s a m i r . c o u t i n h o @ f o r t a l e z a . c e . g o v . b r > D a t e : W e d F e b 2 4 1 6 : 5 9 : 5 9 2 0 1 6 - 0 3 0 0
A d d a r q u i v o s o f f l i n e p a r a p l a n o B
![Page 36: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/36.jpg)
35
TROCANDO DE BRANCH$ g i t c h e c k o u t < n o m e _ d o _ b r a n c h >
mas eu tenho arquivos modificados, como faço?
STASH
![Page 37: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/37.jpg)
36
STASH$ g i t s t a s h
![Page 38: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/38.jpg)
37
STASH$ g i t s t a t u s N o r a m o f e a t u r e / i s s u e - 1 C h a n g e s n o t s t a g e d f o r c o m m i t : m o d i f i c a d o : i n d e x . h t m l
$ g i t s t a s h S a v e d w o r k i n g d i r e c t o r y a n d i n d e x s t a t e W I P o n f e a t u r e / i s s u e - 1 . . . H E A D i s n o w a t c 9 3 f b f 1 r e a d m e t w e a k
$ g i t s t a t u s N o r a m o f e a t u r e / i s s u e - 1 Y o u r b r a n c h i s u p - t o - d a t e w i t h ' o r i g i n / f e a t u r e / i s s u e - 1 '
$ g i t s t a s h p o p
Recupera as modificações para seu diretório de trabalho.
![Page 39: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/39.jpg)
38
DESFAZENDO'NOOBIADAS'
![Page 40: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/40.jpg)
39
DESFAZENDO 'NOOBIADAS'git commit --amendgit checkoutgit revertgit resetgit clean
![Page 41: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/41.jpg)
40
DESFAZENDO 'NOOBIADAS'git commit --amend
a maneira conveniente de consertar apenas o commitmais recente.
git commit --amend --no-editutiliza a mesma mensagem de commit do anterior
![Page 42: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/42.jpg)
41
DESFAZENDO 'NOOBIADAS'git checkout: arquivos • commits • branches
# E s t a d o a t u a l d o b r a n c h e s p e c i f i c a d o g i t c h e c k o u t < b r a n c h >
# V a i p a r a u m a v e r s ã o a n t e r i o r d o a r q u i v o e s p e c i f i c a d o g i t c h e c k o u t < c o m m i t > < f i l e >
# A t u a l i z a t o d o s o s a r q u i v o s p a r a o c o m m i t e s p e c i f i c a d o g i t c h e c k o u t < c o m m i t >
# A t u a l i z a a p e n a s a r q u i v o s c u j o s c a m i n h o s c o n c i d e m c o m < p a t h s > g i t c h e c k o u t - - < p a t h s >
# V a i p a r a a v e r s ã o m a i s r e c e n t e d o a r q u i v o e s p e f i c a d o g i t c h e c k o u t H E A D < f i l e >
![Page 43: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/43.jpg)
42
DESFAZENDO 'NOOBIADAS'
git revert:
desfaz um único commit com um novo commitnão perde histórico
"seguro"
g i t r e v e r t < c o m m i t >
![Page 44: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/44.jpg)
43
DESFAZENDO 'NOOBIADAS'git reset:
age principalmente na área de stagepode agir no diretório do trabalho com a flag --hardpode remover commitsdeve ser usado apenas localmente"perigoso"
![Page 45: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/45.jpg)
44
DESFAZENDO 'NOOBIADAS'git reset
# R e m o v e u m a r q u i v o e s p e c í f i c o d o s t a g e g i t r e s e t < f i l e >
# R e s e t a t u d o n o s t a g e p a r a o c o m m i t m a i s r e c e n t e g i t r e s e t
# R e s e t a t u d o n o s t a g e e d i r e t ó r i o d o t r a b a l h o g i t r e s e t - - h a r d
# M o v e a p o n t a d o b r a n c h a t u a l p a r a < c o m m i t > e r e s e t a o s t a g e g i t r e s e t < c o m m i t >
# M e s m o q u e o a n t e r i o r , m a s r e s e t a s t a g e e d i r e t ó r i o d e t r a b a l h o g i t r e s e t - - h a r d < c o m m i t >
![Page 46: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/46.jpg)
45
DESFAZENDO 'NOOBIADAS'
![Page 47: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/47.jpg)
46
DESFAZENDO 'NOOBIADAS'git revert
EXEMPLO # E d i t e i a l g u n s a r q u i v o s r a s t r e a d o s
# F i z u m c o m m i t g i t c o m m i t - m " F i z a l g u m a s a l t e r a ç õ e s q u e s e r ã o d e s f e i t a s "
# R e v e r t o c o m m i t q u e a c a b e i d e c r i a r g i t r e v e r t H E A D
![Page 48: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/48.jpg)
47
DESFAZENDO 'NOOBIADAS'git revert
EXEMPLO
![Page 49: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/49.jpg)
48
DESFAZENDO 'NOOBIADAS'git clean
remove arquivos não rastreados do seu diretório detrabalho
# " d r y - r u n " d o g i t c l e a n g i t c l e a n - n
# R e m o v e a r q u i v o s n ã o r a s t r e a d o s d o d i r e t ó r i o a t u a l . # N ã o r e m o v e p a s t a s e i t e n s d o . g i t i g n o r e g i t c l e a n - f
# O m e s m o q u e o a n t e r i o r , m a s l i m i t a d o a o c a m i n h o e s p e c i f i c a d o g i t c l e a n - f < p a t h >
# R e m o v e a r q u i v o s e p a s t a s n ã o r a s t r e a d a s d o d i r e t ó r i o l o c a l g i t c l e a n - d f
# R e m o v e t o d o s o s a r q u i v o s n ã o r a s t r e a d o s a s s i m c o m o o s # e s p e c i f i c a d o s n o . g i t i g n o r e g i t c l e a n - x f
![Page 50: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/50.jpg)
49
DESFAZENDO 'NOOBIADAS'git clean
EXEMPLO# E d i t e i a l g u n s a r q u i v o s e x i s t e n t e s # A d i c i o n e i a l g u n s a r q u i v o s n o v o s # P e r c e b i q u e n ã o t i n h a i d e i a d o q u e e s t o u f a z e n d o
# D e s f i z a s a l t e r a ç õ e s n o s a r q u i v o s r a s t r e a d o s g i t r e s e t - - h a r d
# R e m o v i t u d o q u e n ã o e s t a v a r a s t r e a d og i t c l e a n - d f
![Page 51: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/51.jpg)
50
INTEGRANDO BRANCHES
MERGE FAST-FORWARD@ ( m a s t e r ) $ g i t m e r g e b u g f i x
![Page 52: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/52.jpg)
51
INTEGRANDO BRANCHES
MERGESEM FAST-FORWARD
@ ( m a s t e r ) $ g i t m e r g e - - n o - f f b u g f i x
![Page 53: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/53.jpg)
52
MERGEPRÓS
fácil de entendercommits do ramo fonte permanecem separados doscommits do outro ramo
bom para feature branchescommits existentes do ramo fonte ficam intactos e válidos
CONTRAS
se a necessidade de merge surge simplesmente porquevárias pessoas estão trabalhando em do mesmo ramo emparalelo, o histórico pode criar uma confusão.
![Page 54: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/54.jpg)
53
REBASEgit rebase -i ⇒ squash
juntar, combinar múltiplos commits em ume reordená-los.
![Page 55: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/55.jpg)
54
REBASEPRÓS
simplifica o históricoé a maneira mais intuitiva e livre de confusão paracombinar commits de múltiplos desenvolvedores em umramo compartilhado
CONTRAS
um pouco mais complexo, especialmente sob conflito decódigo
cada commit é feito rebase em ordema cada conflito, este processo é interrompido
a reescrita do histórico tem ramificações se você fez pushdaqueles commits anteriormente em outro lugar
![Page 56: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/56.jpg)
55
REGRA DE OURO
NUNCAFAÇA REBASE DE UM RAMO QUE
VOCÊ FEZ:push oupull (fetch + merge) do trabalho de uma outra pessoa
![Page 57: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/57.jpg)
56
MERGE X REBASEMerge preserva o histórico de commitsRebase reescreve o histórico de commits
![Page 58: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/58.jpg)
57
ESTRATÉGIASuse SEMPRE feature branches para codificarsempre crie commits atômicosprefira utilizar o faça rebase para evitar/solucionar conflitos
git flow
![Page 59: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/59.jpg)
58
RESOLVENDO CONFLITOS
git difffeio e trabalhoso
$ g i t d i f f - - c a c h e d d i f f - - g i t a / R E A D M E b / R E A D M E i n d e x b c c d f b d . . b 0 e d 4 1 5 1 0 0 6 4 4 - - - a / R E A D M E + + + b / R E A D M E @ @ - 1 + 1 , 2 @ @ T h i s i s t h e R E A D M E f i l e . + O n e m o r e l i n e .
# E d i t a r e s a l v a r o s a r q u i v o s u m p o r u m # A d d n o s t a g e e c o m m i t
![Page 60: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/60.jpg)
59
RESOLVENDO CONFLITOS
bonito e produtivomenos dolorosotem instalador para o sistemaoperacional proprietário daMicrosoft
MELDs u d o a p t - g e t i n s t a l l m e l d
g i t m e r g e t o o l - t m e l d
m e l d a r q 1 a r q 2
![Page 61: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/61.jpg)
60
GIT CHEAT SHEET
https://duckduckgo.com/?q=git+cheat+sheet&ia=cheatsheet&iax=1
![Page 62: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/62.jpg)
61 . 1
GIT FLOWmodelo de Vincent Driessen
![Page 63: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/63.jpg)
61 . 2
GIT FLOWmodelo de Vincent Driessen original
![Page 64: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/64.jpg)
61 . 3
APRESENTAÇÃO: USANDO GITFLOW PARA ALIVIAR DORES DE
CABEÇA
![Page 65: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/65.jpg)
62
ENTREGA CONTÍNUA DESOFTWARE
Poder lançar um release para produção a qualquermomento.Software ser implantável ao longo do seu ciclo de vidaEquipe priorizar manter implantável ao trabalhar emnovas featuresPoder obter feedback rápido e automatizado sobre osistema em produçãoPoder implantar qualquer versão de forma simples aqualquer ambiente sob demanda
![Page 66: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/66.jpg)
63
ENTREGA CONTÍNUA DE SOFTWARE
VANTAGENSrisco de implantação reduzido
pequenas mudançasmenor chance de dar erradofacilidade de conserto
progresso mais críveltrabalho concluído tangível em produção
feedback do usuário
![Page 67: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/67.jpg)
64
CULTURA DEVOPSaumentar a colaboração entre desenvolvimento eoperaçõescompartilhar responsabilidadesequipe autônomaqualidade no processo de desenvolvimento
performancesegurança
feedback contínuoautomação
testesconfiguraçãoimplantação
![Page 68: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/68.jpg)
65
COMMUNITY EDITION (CE)
![Page 69: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/69.jpg)
65
66
GITLAB CECódigo-fonte aberto (licença MIT)Escalável: suporta 25.000 usuários em um servidor eclusterizaçãoStream de atividadeFile browserGit powered wiki com markdown GitLab FlavoredMarkdown (GFM)
![Page 70: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/70.jpg)
67
GITLAB CEIntegração e entrega contínuaGerenciador de issuesSnippetsWeb hooksRevisor de código
Merge-request com comentários linha por linha
![Page 71: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/71.jpg)
68 . 1
GITLAB CELINKANDO E FECHANDO ISSUES COM COMMITS OU
MERGE REQUESTS
1. mencionar a issue na mensagem do commit ou descriçãodo merge request
fixes #14 • fix #14 • fixed #14 • fixing #14closes #67 • close #67 • closed #67 • closing #67
2. A issue será fechada automaticamente quando o commitestiver no branch principal (master).
EXEMPLOg i t c o m m i t - m " A w e s o m e c o m m i t m e s s a g e \ ( F i x # 2 0 , F i x e s # 2 1 a n d C l o s e s g r o u p / o t h e r p r o j e c t # 2 2 ) . \ T h i s c o m m i t i s a l s o r e l a t e d t o # 1 7 a n d f i x e s # 1 8 , # 1 9 \ a n d h t t p s : / / g i t l a b . e x a m p l e . c o m / g r o u p / o t h e r p r o j e c t / i s s u e s / 2 3 . "
![Page 72: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/72.jpg)
68 . 2
GITLAB CELINKANDO E FECHANDO ISSUES COM COMMITS OU
MERGE REQUESTS
![Page 73: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/73.jpg)
69
GITLAB CEMILESTONES
permite agrupar issues e definir prazos
![Page 74: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/74.jpg)
70 . 1
GITLAB CE
![Page 75: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/75.jpg)
70 . 2
GITLAB CELABELS
bugconfirmedcriticaldiscussiondocumentationenhancementsuggestionsupporttaskwip
![Page 76: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/76.jpg)
71
GITLAB CENETWORK
![Page 77: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/77.jpg)
72
EXERCÍCIOS DE FIXAÇÃO - Git do zero
- aprenda os poderosos conceitos portrás do branching com o git.
Try GitLearn Git Branching
![Page 78: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/78.jpg)
73
REFERÊNCIAS Vincent Driessen. Janeiro de
2010. Daniel Kummer. Agosto de 2012.
Martin Fowler. Maio de 2013. Alex Tercete. Julho de 2014.
Steve. Agosto de 2012. Sytse Sijbrandij. Setembro de 2014.
Lemi Orhan. Novembro de 2012. Scott Chacon e Ben Straub. 2014.
Atlassian. GitLab Inc e comunidade.
A successful Git branching model.
Cheatsheet do git-flow.Continuous Delivery.Como usamos o Git Rebase.Merge or Rebase?Gitlab Flow.Git Branching Model.Livro Pro Git 2ª edição.Become a git guru.GitLab Documentation.
![Page 79: Git e Gitlab por Samir C Costa Iplanfor](https://reader034.vdocuments.pub/reader034/viewer/2022052514/58f34bab1a28ab717d8b459f/html5/thumbnails/79.jpg)
74
"No que diz respeito ao empenho, aocompromisso, ao esforço, à dedicação, nãoexiste meio termo. Ou você faz uma coisa
bem feita ou não faz."
Ayrton Senna