Lendico Tech Talk - Git nosso do dia-a-dia - 02/02/2017
-
Upload
arian-maykon-de-araujo-diogenes -
Category
Technology
-
view
28 -
download
0
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