começando com git

Post on 14-Apr-2017

192 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

• 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

O que é GIT?

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

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

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.

vantagens• Controle do Histórico

• Ramificação do projeto

• Trabalho em Equipe

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

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

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

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?

DVCS X CVCS

Centralizado (CVCS)

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

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

svn

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)

GIT é lindo <3

Mas ... Nem tudo são flores

Linha de comando

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

GitKraken smartgit

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

chocolatey Apt-get homebrew

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”

Ciclo básico git

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

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

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

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/**/*

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.

O que é merge?Processo que unifica o

trabalho realizado em duas branches.

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

Merge com conflitos

git commit –m “blah blah !”

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

Repositórios remotos

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

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

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

Dúvidas?

/Edusolution /Cadums Cadums01@@Cadums01

Obrigado!

/Edusolution /Cadums Cadums01@@Cadums01

top related