Controle de Versão
utilizando GIT
Frederick Moschkowich
Para iniciantes
Olá!
Sou Frederick MoschkowichDesenvolvedor web
fb.com/fredmoscTwitter: @fmwebdeveloper
1.
Controle de Versão
Uma visão geral
Controle de versão
� Armazenamento� Trabalho em equipe� Versionamento� Contar a história do projeto
Dedurar!
Controlar quem fez o que e quando!
2.
O que é GIT
2005
O kernel do Linux era controlado por uma solução da BitKeeper e, como era uma ferramenta paga gerou discódia na comunidade
História do GIT
Linus Torvalds
Resolve então criar sua própria ferramenta de versionamento focada em velocidade, design simples, suporte robusto não linear, totalmente distribuído e com capacidade de lidar com grandes projetos
GIT
Sistema de versionamento (VCS)
GIT não é GITHUB
GIT Hub
Sistema web que oferece diversas funcionalidades extras aplicadas ao git
Onde hospedar repositórios
� Github� Bitbucket� Gitlab� Entre outros
GIT x SVN
A partir do fim de 2013 o GIT passa a dominar o mercado
� Distribuído� Seguro� Rápido� Usado em qualquer lugar
Vantagens do GIT
3.
Instalação
Funciona tanto no Linux como no Mac e até no Windows
Linux
apt-get install git
Mac
http://sourceforge.net/projects/git-osx-installer/
$ sudo port install git-core +svn +doc +bash_completion +gitweb
Windows
http://msysgit.github.com
4.
Links úteis
� https://goo.gl/DDhjyW� https://goo.gl/BAM8Yj� http://goo.gl/atxM9j� https://goo.gl/sBZjyZ
Links úteis
5.
Comandos iniciais
� man git-<verbo>� git help� git --version� git config
○ git config --global user.name “seu nome”○ git config --global user.email “[email protected]”
� git init� git status
Comandos iniciais
Estrutura de pastas
Grafo do GIT
6.
Desfazendo alterações
� git checkout <branch>� git checkout <commit> <file>� git checkout <commit>� git revert� git reset
Desfazendo alterações
Desfazendo alterações
git checkout
Desfazendo alterações
git reset
7.
Branches
� uma nova ramificação, usado para nova feature, refactor, bug…� permite q o commit não fique preso� Comandos
○ git branch feature1○ git branch○ git checkout -b <branch>
Branches
8.
Merge
� Unifica dois ou mais branches� Pode ou não acontecer divergências� Pode ter conflito
Merge
9.
Utilizando repositórios
remotos
� Servem para disponibilizar para outros desenvolvedores� Funciona como backup
Repositórios remotos