Controlando seu projeto com Git
Gabriel Prates
Sobre mim
Gabriel Prates
Controle de Versão
Um sistema de controle de versão (ou versionamento), VCS (do inglês version 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.
Hello Git
Git é um sistema de controle de versão gratuito e de código aberto, projetado para lidar com tudo, desde pequenos a grandes projetos, com velocidade e eficiência.
Criado por Linus Torvalds (criador do Linux)
Lançado em 2005
Por que?
- Histórico de alterações
Por que?
- Histórico de alterações
- Trabalhar em equipe
Por que?
- Histórico de alterações
- Trabalhar em equipe
- Guardar versões
Por que?
- Histórico de alterações
- Trabalhar em equipe
- Guardar versões
- Armazenamento seguro
O que controlar
com Git?
- Controlar trabalhos de faculdade
- (monografia, exercícios, trabalhos)
- Controlar seus arquivos pessoais
- (saves de jogos, fotos)
- Seu trabalho, e o da sua equipe
- Qualquer coisa no seu PC
Download
GUI Clients
Vamos nos apresentar
$ git config user.name "Gabriel Prates"
$ git config user.email "gabriel.prates@email.com"
Configuração local (repositório) de usuário
Vamos nos apresentar
$ git config --global user.name "Gabriel Prates"
$ git config --global user.email "gabriel.prates@email.com"
Configuração global de usuário
Exemplo 1
Lista de filmes
$ mkdir filmes
$ cd filmes
Usando um editor de texto qualquer, crie uma lista de filmes que você gosta.
0) Star Wars IV
1) Star Wars V
2) Star Wars VI
Salve seu arquivo como lista.txt e volte para o terminal.
Exemplo 1
Adicione 3 ou 4 filmes.
Exemplo 1
$ mkdir filmes
$ cd filmes
$
Lista de filmes
Exemplo 1
$ mkdir filmes
$ cd filmes
$ git init
Initialized empty Git repository in /home/gabriel/filmes/.git/
$
Vamos iniciar nosso repositório!
Lista de filmes
Exemplo 1
$ git init
Initialized empty Git repository in /home/gabriel/filmes/.git/
$ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
lista.txt
nothing added to commit but untracked files present (use "git add" to track)
$
Qual a situação dos arquivos no repositório?
Lista de filmes
Exemplo 1
$ git init
Initialized empty Git repository in /home/gabriel/filmes/.git/
$ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
lista.txt
nothing added to commit but untracked files present (use "git add" to track)
$ git add lista.txt
$
Vamos adicionar nosso arquivo ao repositório...
Lista de filmes
Exemplo 1
$ git add lista.txt
$ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: lista.txt
$
...ver nossa situação atual...
Lista de filmes
Exemplo 1
$ git add lista.txt
$ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: lista.txt
$ git commit -m "Arquivo inicial"
[master (root-commit) e2cf4eb] Arquivo inicial
1 file changed, 3 insertions(+)
create mode 100644 lista.txt
$
... e gravar o arquivo.
Lista de filmes
Exemplo 1
$ git commit -m "Arquivo inicial"
[master (root-commit) e2cf4eb] Arquivo inicial
1 file changed, 3 insertions(+)
create mode 100644 lista.txt
$ git status
On branch master
nothing to commit, working directory clean
$
Como estamos?
Lista de filmes
Adicione mais filmes à sua lista!
0) Star Wars IV
1) Star Wars V
2) Star Wars VI
3) Star Wars I
4) Star Wars II
5) Star Wars III
6) Toy Story
7) Toy Story 2
8) Toy Story 3
Salve o arquivo e volte para o terminal.
Exemplo 1
Exemplo 1
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: lista.txt
no changes added to commit (use "git add" and/or "git commit -a")
$
Veja o que foi alterado.
Lista de filmes
Exemplo 1
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: lista.txt
no changes added to commit (use "git add" and/or "git commit -a")
$ git add lista.txt
$ git commit -m "Adicionando mais filmes"
[master b20ca89] Adicionando mais filmes
1 file changed, 6 insertions(+)
$
Rastreando e gravando.
Lista de filmes
Exemplo 1
$ git status
On branch master
nothing to commit, working directory clean
$
Tudo limpo!
Lista de filmes
Exemplo 1
$ git log
commit b20ca89f575bcc50f6274fb0039a1ca43a469232
Author: Gabriel Prates <gabsprates@gmail.com>
Date: Tue Nov 3 22:54:02 2015 -0200
Adicionando mais filmes
commit e2cf4ebda7751921f27cd8316e57b8e9d253f685
Author: Gabriel Prates <gabsprates@gmail.com>
Date: Tue Nov 3 22:44:42 2015 -0200
Arquivo inicial
$
Você disse "histórico"?
Lista de filmes
Dicionário
-
git init
- Criar um repositório Git vazio, ou reiniciar um existente.
-
git status
- Exibe o estado do diretório de trabalho.
-
git add
- Adiciona arquivos à área de stage.
-
git commit
- Grava o estado, ou uma 'imagem', da área de stage.
-
git log
- Exibe o histórico de commit's de uma branch.
Área de "Stage"?
OK!
Já vimos o básico, vamos colocar a mão na massa e descobrir mais sobre o Git.
(:
Verificando mudanças
- Mudanças não rastreadas
- git diff
- Mudanças rastreadas
- git diff --staged
- Mudanças rastreadas e não rastreadas
- git diff <COMMIT>
- Mudanças já comitadas
- git diff <COMMIT_A>..<COMMIT_B>
Desfazendo mudanças
- Mudanças não rastreadas
- git checkout -- <ARQUIVO>
- Mudanças rastreadas
- git reset -- <ARQUIVO>
- Mudanças já comitadas
- git revert <COMMIT>
Podemos fazer muito mais!
Aqui trabalhamos com repositórios locais.
Podemos também trabalhar com repositórios online, e assim, compartilhar o projeto.
Para saber mais:
Este é o começo da sua saga com o Git!
Boa jornada!!!
(:
Git
By Gabriel Prates
Git
- 1,883