SlideShare uma empresa Scribd logo
1 de 131
GIT
com astronomia.
me
(eu)
Marcos <merkkp@gmail.com>
3 partes.
● sobrevivendo:
○ comandos básicos;
○ conflitos;
○ gitlab;
● revolução industrial:
○ introdução a branches;
○ trabalhando com branches;
● revolução tecnológica:
○ introdução aos workflows;
○ propondo um novo workflow;
GIT pra quem não é broder do GIT.
o que diabos é git?
sistema de controle de versão
manter o histórico de
mudanças em um projeto
ao longo do tempo.
porém, não é só isso!
também é uma
ferramenta de
colaboração.
prós
●sem necessidade de
backup
●salvar alterações
localmente
●feito para colaboração
entre times
contras
●curva de aprendizado
●exige estudo do time
pra funcionar
●algumas coisas
obscuras
(no eclipse)
sobrevivendo com git
comandos de macaquinho
só faz, depois “vamo” saber o porque de fazer e como funciona
importando o projeto pro
eclipse
e sem taxas da receita :)
antes de tudo, de onde a gente importa?
http://10.1.11.5/gitlab
agora importando no eclipse
(:
agora já dá pra codar :)
workflow básico
puxar as alterações feitas por
outros do servidor
git pull
salvar as alterações feitas
(localmente) “comitar”
git commit
caso Commit and Push não é necessário
mais nada
porém, caso só Commit
mandar os commits feitos pro
servidor
git push
relembrando
segue o fluxo
git pull -> git commit -> git push
deu conflito, e agora?
ferrou?
prazer, git stash
ou mandando as alterações locais pro espaço (só que com CEP)
segue o fluxo2
a fórmula mágica pra resolver os conflitos
git stash -> git pull -> git stash apply ->
(resolve os conflitos) -> git commit -> git
push
git stash
git pull
git stash apply
RESOLVENDO CONFLITOS
essa cor vermelha dá até medo, mas não é esse monstro
não é o conflito!
git commit & git push
GITLAB
tipo um github, mas no nosso servidor
mas o que que é?
visualizador de
repositórios git
http://10.1.11.5/gitlab
cadastro
grupo (organização)
mas [porque | o que é] um grupo?
●uma forma de agrupar
projetos sob um
namespace
●projetos pertencem a
uma “organização”
se inserindo no grupo aitproeg
crendenciais no
trello
só logar
http://10.1.11.5/gitlab
começando com branches
sabe a fase de tutorial? pois é
mas o que é uma branch?
é um “ramo” paralelo do
projeto.
como usar as branchs
criando o troço
git branch nomeDa_branch
mudando pra branch
git checkout nomeDa_branch
no eclipse
segue o fluxo
(git pull ->) git commit -> git push
precisa mudar de branch pra algo?
git commit | | stash && git checkout
cabou o trampo da feature, e ai?
juntando a branch de feature a
master
de duas formas
pelo eclipse / git puro
git merge
“misturando” uma branch
pelo gitlab (como eu prefiro :p)
pull request (merge request)
misturando uma branch, de forma mais visual
criando um (pull | merge) request
aceitando um pull request
corrigindo um pull request
git commit && git push
sério, só isso
aceitando
workflow
é o fluxo (8)
workflow é o fluxo de
desenvolvimento.
workflows
com git
linear centralized
feature branch
gitflow
forking flow
...
nosso fluxo
●centralizado
●integração contínua
(sem builds)
●linear
codar (certa) história colocando as tracks >> [commit (no “trunk”)] >>
teste manual de funcionalidade usando o card >>
revisão de código procurando as tracks >> (falhou) >>
adequação ao padrão >> [commit (no “trunk”)] >>
revisão de código (passou) >> [commit (no “trunk”)] >>
teste meio automatizado de aceitação (integração) usando selenium
>>
done.
OPNIÃO
tretas possíveis de ocorrer
esquecer de colocar as tracks
colocar as tracks erradas
code review trabalhosa e propensa
a erros
test com o selenium trabalhoso e
não 100% automatizado
histórico bagunçado
“novo” fluxo
baseado no nosso mas usando as facilidades das ferramentas
e dando margem para escalabilidade
codar (certa) história em uma nova branch >> [commit] >>
teste manual de funcionalidade usando o card >> [pull request] >>
revisão de código >> (falhou) >>
adequação ao padrão >> [+commit (na nova branch)] >>
revisão de código >> (passou) >> [merge accept (na master)] >>
teste meio automatizado de aceitação usando selenium >>
done.
OPNIÃO
tretas que podem ocorrer
(não dá pra “resolver” tudo de
uma vez)
esquecer de colocar as stracks
colocar as tracks erradas
sem problemas com track, só olhar a
branch
code review trabalhosa e propensa
a erros
menos trabalhosa
test com o selenium de certa forma
trabalhoso e não 100%
automatizado
histórico bagunçado

Mais conteúdo relacionado

Mais procurados

Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com Git
Raphael Cruzeiro
 

Mais procurados (20)

Git e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson AjacksonGit e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson Ajackson
 
Git e git hub para iniciantes
Git e git hub para iniciantesGit e git hub para iniciantes
Git e git hub para iniciantes
 
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos BásicosGit e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
 
Controle de Versão com Git e como Otimizar seu Workflow com Git Flow
Controle de Versão com Git e como Otimizar seu Workflow com Git FlowControle de Versão com Git e como Otimizar seu Workflow com Git Flow
Controle de Versão com Git e como Otimizar seu Workflow com Git Flow
 
Controle de versão com Git e BitBucket
Controle de versão com Git e BitBucketControle de versão com Git e BitBucket
Controle de versão com Git e BitBucket
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
Git
GitGit
Git
 
Treinamento git - Papos RBSDev
Treinamento git - Papos RBSDevTreinamento git - Papos RBSDev
Treinamento git - Papos RBSDev
 
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
 
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 
Git e Github
Git e GithubGit e Github
Git e Github
 
Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com Git
 
Git - GitHub
Git - GitHubGit - GitHub
Git - GitHub
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 
Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com Git
 
Git
GitGit
Git
 
Git - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoGit - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotado
 
Git - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteGit - Rápido, seguro, eficiente
Git - Rápido, seguro, eficiente
 
Controle de versão e colaboração com Git
Controle de versão e colaboração com GitControle de versão e colaboração com Git
Controle de versão e colaboração com Git
 
Git flow no projeto
Git flow no projetoGit flow no projeto
Git flow no projeto
 

Destaque

Our Favourite Festive Installations
Our Favourite Festive InstallationsOur Favourite Festive Installations
Our Favourite Festive Installations
Tim Ellis
 
Dieu Tri Viem Da Khop
Dieu Tri Viem Da KhopDieu Tri Viem Da Khop
Dieu Tri Viem Da Khop
otha415
 
Uso do Dicionário de Inglês
Uso do Dicionário de InglêsUso do Dicionário de Inglês
Uso do Dicionário de Inglês
Neto Rodrigues
 
Contexto Economico
Contexto EconomicoContexto Economico
Contexto Economico
G Garcia
 
Regras do uso do dicionário
Regras do uso do dicionárioRegras do uso do dicionário
Regras do uso do dicionário
Filipa Guerreiro
 
Taite wk 3 term 3 13pdf
Taite wk 3 term 3 13pdfTaite wk 3 term 3 13pdf
Taite wk 3 term 3 13pdf
takp
 

Destaque (20)

Resume
ResumeResume
Resume
 
Article review six sigma
Article review  six sigmaArticle review  six sigma
Article review six sigma
 
Our Favourite Festive Installations
Our Favourite Festive InstallationsOur Favourite Festive Installations
Our Favourite Festive Installations
 
ZT Present
ZT PresentZT Present
ZT Present
 
Dieu Tri Viem Da Khop
Dieu Tri Viem Da KhopDieu Tri Viem Da Khop
Dieu Tri Viem Da Khop
 
Fetal Ağrı
Fetal Ağrı Fetal Ağrı
Fetal Ağrı
 
Wadhwani et al 2014
Wadhwani et al 2014Wadhwani et al 2014
Wadhwani et al 2014
 
план 2016 2017н.р. (2)
план 2016 2017н.р. (2)план 2016 2017н.р. (2)
план 2016 2017н.р. (2)
 
MIC - Résultats annuels-2016
MIC - Résultats annuels-2016MIC - Résultats annuels-2016
MIC - Résultats annuels-2016
 
Estrategias lect y escritura
Estrategias lect y escrituraEstrategias lect y escritura
Estrategias lect y escritura
 
Uso do Dicionário de Inglês
Uso do Dicionário de InglêsUso do Dicionário de Inglês
Uso do Dicionário de Inglês
 
Proceso contable
Proceso contableProceso contable
Proceso contable
 
Contexto Economico
Contexto EconomicoContexto Economico
Contexto Economico
 
Regras do uso do dicionário
Regras do uso do dicionárioRegras do uso do dicionário
Regras do uso do dicionário
 
Taite wk 3 term 3 13pdf
Taite wk 3 term 3 13pdfTaite wk 3 term 3 13pdf
Taite wk 3 term 3 13pdf
 
Plan tutorial silvia
Plan tutorial silviaPlan tutorial silvia
Plan tutorial silvia
 
Powerpoint roser
Powerpoint roserPowerpoint roser
Powerpoint roser
 
Investigación cualitativa
Investigación cualitativaInvestigación cualitativa
Investigación cualitativa
 
Innovación final
Innovación finalInnovación final
Innovación final
 
A bas Cron ! Vive Oozie !
A bas Cron ! Vive Oozie !A bas Cron ! Vive Oozie !
A bas Cron ! Vive Oozie !
 

Semelhante a Git v2

Processo de desenvolvimento na samba
Processo de desenvolvimento na sambaProcesso de desenvolvimento na samba
Processo de desenvolvimento na samba
joaogmaciel
 

Semelhante a Git v2 (20)

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)
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENAC
 
Git 101
Git 101Git 101
Git 101
 
Introducao git fisl
Introducao git fislIntroducao git fisl
Introducao git fisl
 
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoCurso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
 
Processo de desenvolvimento na samba
Processo de desenvolvimento na sambaProcesso de desenvolvimento na samba
Processo de desenvolvimento na samba
 
GIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento SemânticoGIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento Semântico
 
Sendo um GIT master
Sendo um GIT masterSendo um GIT master
Sendo um GIT master
 
Angular Extreme Performance
Angular  Extreme PerformanceAngular  Extreme Performance
Angular Extreme Performance
 
Gitlab CI/CD com python
Gitlab CI/CD com pythonGitlab CI/CD com python
Gitlab CI/CD com python
 
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
 
Descomplicando o controle de versão com git
Descomplicando o controle de versão com gitDescomplicando o controle de versão com git
Descomplicando o controle de versão com git
 
Rogue Snail Talk - Usando Git na Game Jam - WGJ
Rogue Snail Talk - Usando Git na Game Jam - WGJRogue Snail Talk - Usando Git na Game Jam - WGJ
Rogue Snail Talk - Usando Git na Game Jam - WGJ
 
Git + git hub
Git + git hubGit + git hub
Git + git hub
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)
 
Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)
 
Rogue Snail Talk - Usando Git na Game Jam - WGJ
Rogue Snail Talk - Usando Git na Game Jam - WGJRogue Snail Talk - Usando Git na Game Jam - WGJ
Rogue Snail Talk - Usando Git na Game Jam - WGJ
 
Controlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitControlo de Versões Distribuído com Git
Controlo de Versões Distribuído com Git
 
Controlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteControlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto Proiete
 
Desmistificando a ferramenta git
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta git
 

Mais de COTIC-PROEG (UFPA)

Mais de COTIC-PROEG (UFPA) (20)

LT - Redis
LT - RedisLT - Redis
LT - Redis
 
LT Ansible
LT AnsibleLT Ansible
LT Ansible
 
Testes automatizados com Cypress
Testes automatizados com CypressTestes automatizados com Cypress
Testes automatizados com Cypress
 
Loop back
Loop backLoop back
Loop back
 
METEOR
METEORMETEOR
METEOR
 
Desenvolvimento de software tradicional vs ágil
Desenvolvimento de software tradicional vs ágilDesenvolvimento de software tradicional vs ágil
Desenvolvimento de software tradicional vs ágil
 
Canva
CanvaCanva
Canva
 
Atitudes que levam ao Fracasso profissional
Atitudes que levam ao Fracasso profissionalAtitudes que levam ao Fracasso profissional
Atitudes que levam ao Fracasso profissional
 
Os 5 Sensos da Qualidade
Os 5 Sensos da QualidadeOs 5 Sensos da Qualidade
Os 5 Sensos da Qualidade
 
WATSON - O Fascinante Computador da IBM
WATSON - O Fascinante Computador da IBMWATSON - O Fascinante Computador da IBM
WATSON - O Fascinante Computador da IBM
 
Produtividade sem enrrolação
Produtividade sem enrrolaçãoProdutividade sem enrrolação
Produtividade sem enrrolação
 
LAB JavaScript
LAB JavaScriptLAB JavaScript
LAB JavaScript
 
Principios e Valores Ágeis
Principios e Valores ÁgeisPrincipios e Valores Ágeis
Principios e Valores Ágeis
 
Big data
Big dataBig data
Big data
 
Metricas para Times Ágeis
Metricas para Times ÁgeisMetricas para Times Ágeis
Metricas para Times Ágeis
 
Aplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPA
Aplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPAAplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPA
Aplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPA
 
Técnicas para Programação em Par
Técnicas para Programação em ParTécnicas para Programação em Par
Técnicas para Programação em Par
 
Feedback Canvas
Feedback CanvasFeedback Canvas
Feedback Canvas
 
5 Doenças do Gerenciamento de Projetos
5 Doenças do Gerenciamento de Projetos5 Doenças do Gerenciamento de Projetos
5 Doenças do Gerenciamento de Projetos
 
Restrospectiva ágil
Restrospectiva ágilRestrospectiva ágil
Restrospectiva ágil
 

Git v2

Notas do Editor

  1. ali no verde, só colocar o /var/www
  2. no verde checa se tá setado pro /var/www
  3. verde é a mesangem de commit, tipo no svn (e n precisa de identificação, pq já tá identificado no commit) amarelo seleciona os arquivos que tu quer mandar nesse commit (os arquivos que eu mexi codando na história, por exemplo) commit and push salva as alterações e manda pro servidor commit só salva as alterações localmente
  4. dizendo que tem uma coisa pra mandar (seta pra cima e o número um)
  5. loga e vai aparecer quais commits tu mandou
  6. sempre, SEMPRE pull antes de qualquer coisa até de respirar
  7. deu pull, mas mexeram no que tu tava mexendo. mas o que é um conflito?
  8. eclipse mostra o conflito assim
  9. a gente sabe onde tá, é uma forma de deixar o repositório limpo, desde o último commit, mas sem perder as modificações
  10. pode colocar um texto pra lembrar quais modificações eram
  11. WIP (work in progress) se cê colocou um texto na hora de criar o stash, vai aparecer aqui
  12. vai jogar as alterações de volta, e vai dar conflito (de novo)
  13. bolinha vermelha são os arquivos que deram conflito amarelo é o que tá no HEAD (o que veio do servidor, e agora é o atual no projeto) verde é o que tá no stash (o que tu tava trabalhando) ai escolhe, mantém ou um ou outra modificação, ou ambas decidi manter ambas, ai apaguei as setas, concertei os erros de sintaxe que surgiram, e voilá bolinha vermelha ainda vai ficar
  14. vai sumir a bola vermelha e ficar o asteristico preto no lugar, mas só trabalhar normal próximo commit some
  15. nasceu como um 1 mas é mais que isso, é (praticamente) um gerenciador de projetos
  16. vais receber um email, e depois confirma depois que cadastrou e clicou no link de confirmação, só se colocar no grupo da ait mas pq um grupo?
  17. organização no github (muitas empresas trabalham assim) o q é um grupo? agrupar projetos sob um nome noção de que os projetos são do time, ao invés do usuário facilitar git flow
  18. entra com o usuário ait senha coyoteait
  19. mostra todos os projetos da organização
  20. tÔ trabalhando em algo, quero trabalhar em outra coisa, só que quero começar de um ponto em que o projeto tava limpo.
  21. uma branch tem um commit pai, um merge tem dois commits pais
  22. primeiro push é um poquinho diferente, mas n interfere em nada é esse push que seta o “remoto” padrão da branch que nada mais é o endereço do servidor de onde ele pega e pra onde ele manda
  23. git pull trabalhou mais de um por exemplo tu trabalhou em outro pc e deu push, agora quer aquele trabalho só pegar
  24. commit ou stash e checkout
  25. o que fazer? tá na hora de integrar ao ramo principal :)
  26. e a gente tem duas formas de fazer isso (que eu conheça)
  27. uma branch tem um commit pai, um merge tem dois commits pais
  28. se aplica também ao github um jeito mais visual
  29. lembra do pull do início, é um pull inverso, a gente cria uma tentativa de pull pro master recomendo essa, explico mais tarde por conta do workflow
  30. tem duas branchs depois do push
  31. amarelo (é do gitlab, a master é a default e a branch protegida do projeto) azul eu acabei de criar merge request (pull request) e o compare (pra ti ver o que tem de diferente nas branchs)
  32. eu errei ali na hora de fechar a função
  33. pode comentar gerar uma discussão (o autor vai receber automaticamente) aceitar o merge ver exatamente o que foi mudado se assignar que fez o code review
  34. vi que tem um erro, não fecharam(ei) a função
  35. segue o fluxo normal
  36. agora tá certo
  37. mostra quem deu merge e tudo mais
  38. apagou porque eu escolhi pra apagar
  39. já sabem o básico?
  40. linear centralizado é o nosso feature branch vou falar maisum pouco gitflow gira em torno de release branchs forking flow é MUITO utilizado em projetos open source
  41. o que acontece quando a gente precisa desenvolver outra história? dá outros commits no trunk, deixando a história bagunaçada e dando margem pra erros erroneamente chamado teste de integração
  42. esquecer de colocar as tracks / colocar track errada influencia no code review teste selenium tretoso, lembram dos alerts da cadis?
  43. o que acontece quando a gente precisa desenvolver outra história? meio porque merge accept conta como um commit no trunk pull request a gente pode comentar sobre o que a pessoa fez, sem afetar o código cr centralizado e mais transparente tem como automatizar o selenium
  44. resolvemos alguma coisa integração contínua e selenium automatizado (futuro) histórico bagunçado é um ponto de vista