começando com git
Post on 14-Apr-2017
183 Views
Preview:
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