Lendico Tech Talk - Git nosso do dia-a-dia - 02/02/2017

download Lendico Tech Talk - Git nosso do dia-a-dia - 02/02/2017

If you can't read please download the document

Transcript of Lendico Tech Talk - Git nosso do dia-a-dia - 02/02/2017

Lush Green

Lendico Brasil - Tech Talks

Git nosso do dia-a-dia

O que Git?

Git um sistema de controle de verses (VCS, Version Control System), ou mais alm, um software de gesto de configurao (SCM, Software Configuration Management)

Gesto de configurao (GC, Configuration Management) um processo de engenharia de sistemas que visa gerenciar alguns aspectos de sofwares em si, como releases, requisitos entre outros

Falando por alto, Git (ou qualquer outro SCM/VCS), ajuda nas tarefas de GC atravs do controle de alteraes em arquivos, registrando as alteraes feitas, verses dos arquivos alterados e do software como um todo (baselines, AKA verses, AKA tags)

Usado primariamente em desenvolvimento de sofware mas pode ser usado para controle de verso de qualquer tipo de arquivo

Criado pelo Linus Torvalds (criador do Linux) em 2005 para gerir o cdigo fonte do kernel do Linux, motivado pela decepo/irritao com outros SCM usados anteriormente (BitKeeper, proprietrio)

Git um VCS distribudo, assim como o Mercurial, Bazzar, Monotone e outros (VER)

VCSs como o CVS, SVN (Subversion) e VSS (Visual Source Safe) so do tipo centralizado

Ao final, falar da motivao do uso, exemplo:Um programador sozinho vai implementar o site dele e quer gerir as alteraes feitas, para consultas de possveis reverses, e gerenciamento de pontos importantes do site (verso inicial, blog adicionado, tela de contato adicionada), entre outras features, usa o Git para resolver essa necessidade;

Uma equipe vai desenvolver um software novo para a empresa, e para facilitar o compartilhamento das partes prontas do programa, conforme avanam no desenvolvimento, usam o Git para gerir esse tipo de coisa;

Cenrios para se usar um VCS

Time: Gesto do cdigo fonte entre os membros do time, facilitando o compartilhamento/atualizao das partes prontas e avanos do desenvolvimento;

Indivduo: Controle das alteraes feitas numa diagramao de texto (LaTex e outros), marcando via tags os pontos importantes, como:revisao_1

mudana_de_foco_para_xpto

revisao_final

aprovacao

revisao_antes_publicacao_na_plataforma_lattes_cnpq

VCSs so amplamente usados/criados na comunidade de desenvolvimento de softwares pelso motivos j citados, mas pode ser usado para qualquer tipo de coisa, gerenciamento de documentos, binrios, imagens, etc (h tipos de VCSs especializados para alguns destes e outros cenrios)

Operaes com Git 1/2

OPERAODESCRIOEXEMPLO

git initCria o diretrio .git para incio do versionamento do diretrio correntegit clone URLObtm os arquivos (cdigo-fonte, geralmente) do repositrio indicado na URLgit clone [email protected]:lra/mackup.git

git statusExibe o status atual da cpia de trabalho, arquivos no versionados, adicionados mas no comitados, etcgit add arquivo/matchAdiciona um arquivo(s), diretrio(s), mscara no versionamento stage local do arquivogit add import.pygit add scripts/import_*.py

git commitSubmete os arquivos adicionados (git add,staged files), ainda localmentegit commit -m Initial commit

git diffMostra as diferenas realizadas, geral ou de arquivos especficosgit diff import.py

git checkoutUsado para criar/mudar de branches, reverter mudanas num arquivo, voltar o repositrio para uma verso especfica e outrosgit checkout - - import.py[*]git checkout create_import_scripts

Operaes com Git 2/2

OPERAODESCRIOEXEMPLO

git mergeUsado para merge entre branchesgit merge create_import_scripts

git stashUsado para listar/criar/apagar/aplicar alteraes no enviadas (commit)git stash list / save / apply / pop

Outrospull, push, log, mv, reset, tag

Git Fluxo de arquivo

Git Operaes com servidores

Fork

Pull request [*]

Git - Branches

Git Hands on ?!?!

Vai que...

Sugestes de sofwares

Clientes grficos (GUI) para Git:JetBrains/PyCharm (embutido)

SourceTree - https://www.sourcetreeapp.com/

GitKraken - https://www.gitkraken.com/

SmartGit - http://www.syntevo.com/smartgit/

Outras ferramentas (no s de Git) aqui

Links e referncias

Documentao oficial do Git - https://git-scm.com/

TryGit - https://try.github.io/levels/1/challenges/1

Curso Git CodeSchool (Free) - https://www.codeschool.com/courses/try-git

Curso Git Udacity (Free) - https://br.udacity.com/course/how-to-use-git-and-github--ud775/

Github Help - https://help.github.com/

Palestra VCSs (2008) - http://pt.slideshare.net/dead_thinker/cepug-06122008-maykon-sistemas-de-controle-de-verso-presentation

Q&A e agradecimentos

Perguntas?

Obrigado!

2017-02-02

Lendico Brasil Tech Talks: Git nosso do dia-a-dia