36

Começando com GIT

Embed Size (px)

Citation preview

Page 1: Começando com GIT
Page 2: Começando com GIT

CARLOS Eduardo- Desenvolvedor na Iterative- Graduado em Analise e Desenvolvimento de

Sistemas- Cursando MBA Eng. de Software (FIAP)- Microsoft Certified Professional

/Edusolution /Cadums Cadums01@@Cadums01

Page 3: Começando com GIT

• O que é GIT (Visão Geral)• Comparação com outros Versionadores de Código• Instalação e Configuração• Ciclo Básico• Comandos • Como Ignorar Arquivos• Como Trabalhar com Várias Branches• Resolução de Merges e Conflitos• Repositórios Remotos (GitHub, Vsts)

Agenda

Page 4: Começando com GIT

O que é GIT?

Page 5: Começando com GIT

Sistema de controle de versão distribuído (DVCS) open source

Page 6: Começando com GIT

HistóriaProjeto criado por linus Torvalds quando teve que optar por uma alternativa do bitkeeper,Que era o vcs que a comunidade do kernel do Linux utilizava desde 2002 e teve sua licençaAlterada, deixando de fornecer acesso gratuito.

• Não se basear no CVS• Ser distribuído como o BitKeeper• Proteger contra corrompimento de arquivos• Ser rápido, muito rápido, com alta performance.

Premissas

Page 7: Começando com GIT

Mas o que é controle de versão?

Wikipedia:

Um sistema de controle de versão (ou versionamento), VCS (do inglêsversion control system) ou ainda SCM (do inglês source code management) na função prática da Ciência da Computação e da Engenharia de Software,é um software com a finalidade de gerenciar diferentes versões no desenvolvimento de um documento qualquer.

Page 8: Começando com GIT

vantagens• Controle do Histórico

• Ramificação do projeto

• Trabalho em Equipe

• Marcação e resgate de versões estáveis

Page 9: Começando com GIT

Opções de vcs• GIT• TFS• CVS• Mercurial (Usado para gerenciar o código fonte do python)• Bazaar• Subversion (svn)• RTC (IBM)

Page 10: Começando com GIT

Eu faço backup todos os dias, não preciso de vcs!

Page 11: Começando com GIT

Quais respostas para as seguintes questões, levando em consideração a não utilização de um VCS e deixando o código em algum diretório local ou na rede:

• Quem alterou o código?

• Que código foi alterado?

• Quando foi alterado?

Page 12: Começando com GIT

DVCS X CVCS

Page 13: Começando com GIT

Centralizado (CVCS)

• Pouca autonomia Ações necessitam de acesso ao servidor.

• Risco de perda de dados tudo em um único repositório

svn

Page 14: Começando com GIT

git

• Todo diretório de trabalho é um repositório completo• Contém todo histórico de alterações

• Principais operações são locais • Sem dependência de um servidor

• Somente operações de “sincronização” necessitam acesso a outros repositórios

GIT é distribuído (DVCS)

Page 15: Começando com GIT

GIT é lindo <3

Page 16: Começando com GIT

Mas ... Nem tudo são flores

Page 17: Começando com GIT

Linha de comando

Page 18: Começando com GIT

Ferramentas (gui)https://git-scm.com/download/gui/linux

GitKraken smartgit

Page 19: Começando com GIT

instalaçãohttps://git-scm.com/downloads

chocolatey Apt-get homebrew

Page 20: Começando com GIT

Configurando• Configurando nome e e-mail

git config --global user.name“Meu Nome”

• Configurando coresgit config --global color.ui true

• Configurando atalhosgit config --global alias.ststatus

escopos de configurações• --Global (Configuração a nível de usuário) • --system (configuração a nível de sistema)• --Local (configuração a nível de repositório)

• Configurando editorgit config --global core.editor“diretório do editor”

Page 21: Começando com GIT

Ciclo básico git

Page 22: Começando com GIT

Estados dos arquivos• Não monitorado (untracked)• Modificado (modified)• Preparado (staged)• Consolidado (commited)

Page 23: Começando com GIT

repositóriosRepositório de desenvolvedor

• Usado para se trabalhar no projeto• Com arquivos do projeto• Dados do Git no diretório .git na raiz do projeto

Repositório de servidor (bare)• Usado para compartilhar o projeto• Sem arquivos do projeto• Dados do Git diretamente na raiz do projeto

Criação de repositório:• git init [--bare] DIRETÓRIO

Page 24: Começando com GIT

demo• Git init• Git add• Git commit• Git log• Git status• Git show• Git rm

Page 25: Começando com GIT

Ignorando arquivosComentário# Isto é um comentário

Ignorar arquivos específicos .FILE1.TXT

#Usando curingas*~*.swp

Ignorar todos os diretórios e arquivos em um diretórioTmp/**/*

Page 26: Começando com GIT

branchesBranches são ramos de desenvolvimento onde podemos alterar nosso código de modo que fiquem separados um dos outros, para mais tarde podemos fundir seu conteúdo com outra branch.

Page 27: Começando com GIT

O que é merge?Processo que unifica o

trabalho realizado em duas branches.

Page 28: Começando com GIT

demo• Git branch• Git checkout• Git diff• Git show• Git blame• git reset

Page 29: Começando com GIT

Merge com conflitos

git commit –m “blah blah !”

Page 30: Começando com GIT

CENÁRIO

// Beginfunction f(x) { return 7;}// End

function f(x) { return 2 * x;}

// Beginfunction f(x) {<<<<<<< HEAD return 7;======= return 2 * x;>>>>>>> other-branch}// End

function f(x) {}

main.js

Merge

Page 31: Começando com GIT

Repositórios remotos

Page 32: Começando com GIT

demo• Git remote• Git clone• Git fetch• Git push• Git pull

Page 33: Começando com GIT
Page 34: Começando com GIT

recursoshttps://git-scm.com/book/pt-br/v1 (Documentação)

https://progit.org/ (Livro Free)

Page 35: Começando com GIT

Dúvidas?

/Edusolution /Cadums Cadums01@@Cadums01

Page 36: Começando com GIT

Obrigado!

/Edusolution /Cadums Cadums01@@Cadums01