Ferramentas para
Versionamento - Git
Guilherme Henrique Rodrigues
Apresentação
● Graduado em Análise e Desenvolvimento de Sistemas - UNIPAR
● Cursando pós graduação em desenvolvimento web e mobile - Faculdade Alfa
● Desenvolvedor web - Marknet Agência Digital
guil95 guilhermerodriguestb@gmail.com guilhermehrodrigues
Conteúdo do curso?
O que é Git
Segundo Wikipédia
● Git é um sistema de controle de versão de arquivos
● Diversas pessoas podem contribuir simultaneamente no mesmo projeto, sem o
risco de suas alterações serem sobrescritas.
Por que devo versionar Projetos?
O controle de versão pode evitar diversos problemas, como por exemplo, que
arquivos ou documentos sejam alterados por duas pessoas em paralelo e
um sobrescreva a alteração anterior, também evita que se percam arquivos
funcionais que foram alterados e apresentaram problemas e etc.
Vantagens de se versionar projetos
● Controle de versões eficiente
● Ajuda a manter a qualidade do produto final,
● Manter todos os clientes com a mesma versão do produto, ou caso seja
necessário versões diferentes do mesmo produto caso algum dos clientes
tenha necessidades especiais.
Para a gestão do projeto:
● Permitir que várias pessoas trabalhem paralelamente em um projeto,
● Permite que se trabalhe em um projeto em versões diferentes
Git vs SVN
Ainda hoje é muito popular a utilização do SVN para versionamento de projetos, mas são diversos
fatores que contribuem para não utilização do mesmo e migração para o Git, alguns desses fatores são:
● Pouca autonomia (todas ações necessitam de acesso ao servidor)
● Arquivos são versionados diretamente no servidor
● Risco de perda de dados (tudo fica no servidor)
O Git mantém uma cópia fiel de tudo que contém no servidor, no qual permite realizar alterações
em versões anteriores mesmo que não esteja conectado no mesmo.
Ok, mas se tudo que está no servidor também fica na minha máquina, posso dizer adeus para meu
HD. Errado, o Git detecta apenas as alterações e faz comparações de código, armazenando tudo isso em
arquivos pequenos, que o Git consegue interpretar, facilitando assim os Backups.
Com utilização do versionamento utilizando Git podemos concluir que nosso
projeto terá
● Controle de histórico
● Trabalho em equipe
● Marcação de versões
● Resgate de versões
● Ramificação de projeto
Principais servidores para hospedagem
Ciclo básico de trabalho com git
Desenvolvendo novas
funções
git clone
clonando repo
git push enviando
alterações para servidor
git pull Buscando
informações do servidor
Utilizando Git via bash, shell ou terminal
Conseguimos utilizar o Git apenas por linha de comando, como por exemplo, criar
repositórios, criar features, releases, branches …
Na maioria das empresas utiliza-se ferramentas para auxiliar o controle de
versão e a utilização do Git para esse fim, mas sempre é indispensável ter
conhecimento mesmo que básico, sobre linhas de comando.
Comandos básicos
Git clone :
Utilizado para clonar repositório em determinado servidor
Comando:
Criando repositório urlrepositorio
git clone urlrepositorio.git
Criando repositório com nome diferente ao nome do projeto git
git clone urlrepositorio.git meuprojeto
Git branch:
Utilizado para criar uma nova ramificação
Comando:
git branch develop
Git Checkout:
Utilizado para mudar de branch
Comando:
git checkout develop
Git merge:
Utilizado para mesclar duas branches
Comando:
git merge master
Git status:
Utilizado para verificar status atual da branch
Comando:
git status
Git add:
Utilizado para adicionar novos arquivos
Comando:
Adicionar arquivo específico
git add arquivo.txt
Adicionar todos arquivos
git add *
Git commit:
Utilizado para salvar alterações em uma branch
Comando:
git commit -m “Mensagem do commit”
Git push:
Utilizado para enviar dados para servidor
Comando:
git push
Git Pull:
Utilizado para baixar informações do servidor
Comando:
git pull
Iniciando repositórios
Hora de colocar a mão na massa
● Criar conta no bitbucket
● Criar conta do github
● Iniciar repositório bitbucket
● Iniciar repositório github
Executando comandos via terminal
Para executar os comandos via terminal no windows utilizaremos o git bash
Para linux ou mac poderá ser utilizado o terminal (desde que tenha git instalado
na máquina)
Utilização de ferramentas para controle de versão
Utilizaremos a ferramenta source para auxílio no controle de versão do nosso
projeto.
Para computadores cujo sistema operacional é linux, utilizaremos smart git ou
gitkraken.
Git Flow para padronizar branches
Em muitos projetos utilizamos git flow para padronizar controle de versão, tal
como a criação de branches, features, releases ...
Clicando aqui nós iremos para página onde será ilustrado a usabilidade do git
flow.
Mão na massa level 2
● Instalar Source tree
● Clonar repositório
● Inicializar git flow
● Fazer checkout no develop
● Criar features
● Finalizar feature
● Criar release
● Finalizar release
Padronização fechamento de versão
1 - Versão Maior(MAJOR): quando fizer mudanças incompatíveis na API,
2 - Versão Menor(MINOR): quando adicionar funcionalidades mantendo
compatibilidade, e
3 - Versão de Correção(PATCH): quando corrigir falhas mantendo
compatibilidade.

Ferramentas para versionamento Utilizando git

  • 1.
    Ferramentas para Versionamento -Git Guilherme Henrique Rodrigues
  • 2.
    Apresentação ● Graduado emAnálise e Desenvolvimento de Sistemas - UNIPAR ● Cursando pós graduação em desenvolvimento web e mobile - Faculdade Alfa ● Desenvolvedor web - Marknet Agência Digital guil95 guilhermerodriguestb@gmail.com guilhermehrodrigues
  • 3.
  • 4.
    O que éGit Segundo Wikipédia ● Git é um sistema de controle de versão de arquivos ● Diversas pessoas podem contribuir simultaneamente no mesmo projeto, sem o risco de suas alterações serem sobrescritas.
  • 5.
    Por que devoversionar Projetos? O controle de versão pode evitar diversos problemas, como por exemplo, que arquivos ou documentos sejam alterados por duas pessoas em paralelo e um sobrescreva a alteração anterior, também evita que se percam arquivos funcionais que foram alterados e apresentaram problemas e etc.
  • 6.
    Vantagens de seversionar projetos ● Controle de versões eficiente ● Ajuda a manter a qualidade do produto final, ● Manter todos os clientes com a mesma versão do produto, ou caso seja necessário versões diferentes do mesmo produto caso algum dos clientes tenha necessidades especiais. Para a gestão do projeto: ● Permitir que várias pessoas trabalhem paralelamente em um projeto, ● Permite que se trabalhe em um projeto em versões diferentes
  • 7.
    Git vs SVN Aindahoje é muito popular a utilização do SVN para versionamento de projetos, mas são diversos fatores que contribuem para não utilização do mesmo e migração para o Git, alguns desses fatores são: ● Pouca autonomia (todas ações necessitam de acesso ao servidor) ● Arquivos são versionados diretamente no servidor ● Risco de perda de dados (tudo fica no servidor) O Git mantém uma cópia fiel de tudo que contém no servidor, no qual permite realizar alterações em versões anteriores mesmo que não esteja conectado no mesmo. Ok, mas se tudo que está no servidor também fica na minha máquina, posso dizer adeus para meu HD. Errado, o Git detecta apenas as alterações e faz comparações de código, armazenando tudo isso em arquivos pequenos, que o Git consegue interpretar, facilitando assim os Backups.
  • 8.
    Com utilização doversionamento utilizando Git podemos concluir que nosso projeto terá ● Controle de histórico ● Trabalho em equipe ● Marcação de versões ● Resgate de versões ● Ramificação de projeto
  • 9.
  • 10.
    Ciclo básico detrabalho com git Desenvolvendo novas funções git clone clonando repo git push enviando alterações para servidor git pull Buscando informações do servidor
  • 11.
    Utilizando Git viabash, shell ou terminal Conseguimos utilizar o Git apenas por linha de comando, como por exemplo, criar repositórios, criar features, releases, branches … Na maioria das empresas utiliza-se ferramentas para auxiliar o controle de versão e a utilização do Git para esse fim, mas sempre é indispensável ter conhecimento mesmo que básico, sobre linhas de comando.
  • 12.
    Comandos básicos Git clone: Utilizado para clonar repositório em determinado servidor Comando: Criando repositório urlrepositorio git clone urlrepositorio.git Criando repositório com nome diferente ao nome do projeto git git clone urlrepositorio.git meuprojeto
  • 13.
    Git branch: Utilizado paracriar uma nova ramificação Comando: git branch develop
  • 14.
    Git Checkout: Utilizado paramudar de branch Comando: git checkout develop
  • 15.
    Git merge: Utilizado paramesclar duas branches Comando: git merge master
  • 16.
    Git status: Utilizado paraverificar status atual da branch Comando: git status
  • 17.
    Git add: Utilizado paraadicionar novos arquivos Comando: Adicionar arquivo específico git add arquivo.txt Adicionar todos arquivos git add *
  • 18.
    Git commit: Utilizado parasalvar alterações em uma branch Comando: git commit -m “Mensagem do commit”
  • 19.
    Git push: Utilizado paraenviar dados para servidor Comando: git push
  • 20.
    Git Pull: Utilizado parabaixar informações do servidor Comando: git pull
  • 21.
    Iniciando repositórios Hora decolocar a mão na massa ● Criar conta no bitbucket ● Criar conta do github ● Iniciar repositório bitbucket ● Iniciar repositório github
  • 22.
    Executando comandos viaterminal Para executar os comandos via terminal no windows utilizaremos o git bash Para linux ou mac poderá ser utilizado o terminal (desde que tenha git instalado na máquina)
  • 23.
    Utilização de ferramentaspara controle de versão Utilizaremos a ferramenta source para auxílio no controle de versão do nosso projeto. Para computadores cujo sistema operacional é linux, utilizaremos smart git ou gitkraken.
  • 24.
    Git Flow parapadronizar branches Em muitos projetos utilizamos git flow para padronizar controle de versão, tal como a criação de branches, features, releases ... Clicando aqui nós iremos para página onde será ilustrado a usabilidade do git flow.
  • 25.
    Mão na massalevel 2 ● Instalar Source tree ● Clonar repositório ● Inicializar git flow ● Fazer checkout no develop ● Criar features ● Finalizar feature ● Criar release ● Finalizar release
  • 26.
    Padronização fechamento deversão 1 - Versão Maior(MAJOR): quando fizer mudanças incompatíveis na API, 2 - Versão Menor(MINOR): quando adicionar funcionalidades mantendo compatibilidade, e 3 - Versão de Correção(PATCH): quando corrigir falhas mantendo compatibilidade.