SlideShare une entreprise Scribd logo
1  sur  76
Télécharger pour lire hors ligne
Descomplicando o controle 
de versão com Git 
Humberto Streb
2 
Humberto Streb 
Bel. Sistemas de Informação 
Desenvolvedor Java 
Entusiasta Linux 
Curioso 
github.com/hstreb 
hstreb@gmail.com
3 
Controle de versão 
“É um software com a finalidade de gerenciar 
diferentes versões no desenvolvimento de um 
documento qualquer.” 
[Wikipédia]
4 
Projetos pequenos
5 
Projetos grandes
6 
Vantagens 
Histórico de alterações 
Facilidade de reverter alterações 
Facilidade de ramificar o projeto 
Facilidade de marcar (tag) dados 
Backup do código fonte
7 
Git 
“É um sistema de controle de versão 
distribuido gratuito e open source desenhado 
para lidar com tudo, desde pequenos até 
grandes projetos com rapidez e eficiência.” 
[git-scm.com]
8 
Git 
Foco em velocidade 
Foco no design simples 
Suporte robusto a desenvolvimento não linear 
(milhares de branches paralelos) 
Totalmente distribuído 
Capaz de lidar eficientemente com grandes 
projetos como o kernel do Linux
9 
Empresas que utilizam Git
10 
Configuração 
$ git config --global user.name "Humberto 
Streb" 
$ git config --global user.email 
"hstreb@gmail.com"
11 
Entendendo os estados
12 
Área de trabalho 
É onde são carregados os arquivos vindo de um 
repositório (checkout). Nela estão os arquivos 
vigentes.
13 
Área de preparação 
É uma área temporária, que contem as 
informações do próximo commit.
14 
Diretório do Git 
É onde são armazenados as informações sobre 
o último commit.
15 
Mãos na massa
16 
init 
Esse comando irá inciar um repositório local na 
pasta onde foi executado
17 
init 
$ mkdir tutorial-git 
$ cd tutorial-git 
$ git init 
Initialized empty Git repository in .../tutorial-git/. 
git/
18 
status 
Mostra o estado atual do projeto
19 
status 
$ git status 
# On branch master 
# 
# Initial commit 
# 
nothing to commit (create/copy files and use 
"git add" to track)
20 
Criamos a classe App.java
21 
status 
$ git status 
# On branch master 
# 
# Initial commit 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# App.java 
nothing added to commit but untracked files present (use "git add" 
to track)
22 
add 
Adiciona os arquivos para o índice do git.
23 
add 
$ git add . 
$ git status 
# On branch master 
# 
# Initial commit 
# 
# Changes to be committed: 
# (use "git rm --cached <file>..." to unstage) 
# 
# new file: App.java 
#
24 
commit 
Salva as alterações contidas no índice para o 
repositório do git
25 
commit 
$ git commit -m "Iniciando o projeto" 
[master (root-commit) aab8232] Iniciando o 
projeto 
1 file changed, 7 insertions(+) 
create mode 100644 App.java
26 
commit 
$ git commit -m "Iniciando o projeto" 
[master (root-commit) aab8232] Iniciando o 
projeto 
1 file changed, 7 insertions(+) 
create mode 100644 App.java 
$ git status 
# On branch master 
nothing to commit, working directory clean
27 
Criando teste com valores 
fixos
28 
commit 
git add . 
$ git commit -m "Teste com valores fixos" 
[master 0dc82d0] Teste com valores fixos 
1 file changed, 5 insertions(+), 1 deletion(-)
29 
log 
Mostra o histórico de commits
30 
log 
$ git log 
commit 0dc82d02b8552dea278a1dfa118d3d722a33f380 
Author: Humberto Streb <hstreb@gmail.com> 
Date: Thu Sep 12 10:52:29 2013 -0300 
Teste com valores fixos 
commit aab8232b734b7dbd133f07d13afc2fbf642183d1 
Author: Humberto Streb <hstreb@gmail.com> 
Date: Thu Sep 12 10:48:48 2013 -0300 
Iniciando o projeto
31 
Adicionando leitura do 
teclado
32 
add e commit no mesmo 
comando 
git commit -a -m "Ler do teclado" 
1 file changed, 6 insertions(+), 1 deletion(-)
33 
tag 
Serve como marcação para um determinado 
momento do projeto
34 
tag 
$ git tag v-1 
$ git tag 
v-1
35 
branch 
Esse comando cria uma ramificação do projeto
36 
branch 
$ git branch 
* master 
$ git branch tratarExcecao 
$ git checkout tratarExcecao 
Switched to branch 'tratarExcecao' 
$ git branch 
master 
* tratarExcecao
37 
branch 
$ git checkout -b tratarExcecao
38 
Adicionando o tratamento 
de exceções no branch
39 
Adicionando o tratamento 
de exceções no branch 
$ git commit -a -m "Tratamento exceção" 
[tratarExcecao ecf16a9] Tratamento exceção 
1 file changed, 9 insertions(+), 3 deletions(-)
40 
checkout 
É o comando responsável por “atualizar” para 
o branch que deseja ir.
41 
checkout para o master 
$ git checkout master 
Switched to branch 'master'
42 
O arquivo App.java voltou 
para o formato anterior
43 
Adição do método 
processaResposta
44 
Adição do método 
processaResposta 
$ git commit -a -m "Adicção método 
processaResposta" 
[master 4c163d6] Adicção método 
processaResposta 
1 file changed, 4 insertions(+)
Corrigindo o último commit 
$ git log 
... 
45 
Adicção método processaResposta 
$ git commit --amend -m "Adição método processaResposta" 
[master 9deaa21] Adição método processaResposta 
1 file changed, 4 insertions(+) 
$ git log 
... 
Adição método processaResposta
46 
dif 
Mostra as diferenças entre o branch atual e o 
destinatário
47 
dif 
$ git checkout tratarExcecao 
Switched to branch 'tratarExcecao'
$ git diff master 
diff --git a/App.java b/App.java 
index 3edc65f..15b4da3 100644 
--- a/App.java 
+++ b/App.java 
@@ -4,14 +4,16 @@ public class App { 
48 
public static void main(String[] args) { 
Scanner scanner = new Scanner(System.in); 
- 
- System.out.println("Digite um numero:"); 
- int numero = scanner.nextInt(); 
- processaResultado(numero); 
- } 
- 
- private static void processaResultado(int numero) { 
+ int numero; 
+ try { 
+ System.out.println("Digite um número:"); 
+ numero = scanner.nextInt(); 
+ } catch (Exception e) { 
+ System.out.println("Não foi possível ler o valor digitado! O valor será 0."); 
+ numero = 0; 
+ } 
+ 
int dobro = numero * numero; 
System.out.println("O dobro: " + dobro);
49 
merge 
Responsável por fazer a concatenação das 
diferenças entre os branches
50 
Fazendo merge com o 
master 
$ git merge master 
Auto-merging App.java 
Merge made by the 'recursive' strategy. 
App.java | 4 ++++ 
1 file changed, 4 insertions(+)
51 
Adicionando o método 
lerInteiro
52 
Adicionando o método 
lerInteiro 
$ git checkout master 
Switched to branch 'master' 
$ git commit -a -m "Adição método lerInteiro" 
[master e41e17b] Adição método lerInteiro 
1 file changed, 9 insertions(+), 4 deletions(-)
53 
Fazendo merge com o 
master (2) 
$ git checkout tratarExcecao 
Switched to branch 'tratarExcecao' 
$ git merge master 
Auto-merging App.java 
CONFLICT (content): Merge conflict in 
App.java 
Automatic merge failed; fix conflicts and then 
commit the result.
54
55 
Consertar o método 
lerInteiro
56 
Fazer o merge do branch 
para o master 
$ git commit -a -m "Tratar exceção no método lerInteiro" 
[tratarExcecao c7053bb] Tratar exceção no método lerInteiro 
$ git checkout master 
Switched to branch 'master' 
$ git merge tratarExcecao 
Updating e41e17b..c7053bb 
Fast-forward 
App.java | 10 +++++++--- 
1 file changed, 7 insertions(+), 3 deletions(-)
57 
Colaborando
58 
remote 
É utilizado para adicionar um repositório 
remoto ao projeto
59 
remote 
$ git remote add origin 
git@github.com:hstreb/tutorial-git.git
60 
clone 
É utilizado para “clonar” um repositório.
61 
clone 
$ git clone git@github.com:hstreb/tutorial-git.git 
Cloning into 'projeto'... 
remote: Counting objects: 27, done. 
remote: Compressing objects: 100% (10/10), 
done. 
remote: Total 27 (delta 9), reused 24 (delta 9) 
Receiving objects: 100% (27/27), done. 
Resolving deltas: 100% (9/9), done.
62 
push 
Este comando envia as alterações contidas no 
repositório local para o repositório remoto
63 
push 
$ git push origin master 
Warning: Permanently added the RSA host key for IP address 
'192.30.252.131' to the list of known hosts. 
Counting objects: 24, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (16/16), done. 
Writing objects: 100% (24/24), 2.26 KiB, done. 
Total 24 (delta 9), reused 0 (delta 0) 
To git@github.com:hstreb/tutorial-git.git 
* [new branch] master -> master
64 
push branches 
$ git push origin tratarExcecao 
Warning: Permanently added the RSA host key 
for IP address '192.30.252.130' to the list of 
known hosts. 
Total 0 (delta 0), reused 0 (delta 0) 
To git@github.com:hstreb/tutorial-git.git 
* [new branch] tratarExcecao -> 
tratarExcecao
65 
pull 
É utilizado para baixar as alterações contidas 
no repositório remoto
66 
pull 
$ git pull origin master 
From github.com:hstreb/tutorial-git 
* branch master -> FETCH_HEAD 
Updating c7053bb..85cde87 
Fast-forward 
README.md | 9 +++++++++ 
1 file changed, 9 insertions(+) 
create mode 100644 README.md
67 
stash 
Stash é utilizado para adicionar várias 
alterações em uma pilha, que é armazenada 
localmente
68 
stash Adicionar alterações 
$ git stash 
Saved working directory and index state  
"WIP on master: 049d078 added the index 
file" 
HEAD is now at 049d078 added the index file 
(To restore them type "git stash apply")
69 
stash listar alterações já 
realizadas 
$ git stash list 
stash@{0}: WIP on master: 049d078 added the 
index file 
stash@{1}: WIP on master: c264051... Revert 
"added file_size" 
stash@{2}: WIP on master: 21d80a5... added 
number to log
70 
stash aplicar alterações 
$ git stash apply 
# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will 
be committed) 
# 
# modified: App.java 
#
71 
stash aplicar e retirar da 
lista as alterações 
$ git stash pop 
# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will 
be committed) 
# 
# modified: App.java 
#
72 
stash aplicar alterações 
mais antigas 
$ git stash apply@{2} 
# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will 
be committed) 
# 
# modified: App.java 
#
73 
stash aplicar alterações 
mais antigas 
{0} representa o último stash que você fez; 
{1} representa penúltimo, e assim por diante. 
Essa sintaxe também aparece em outros 
lugares (show, por exemplo).
74 
projeto
75 
Links 
http://git-scm.com 
https://github.com/hstreb/tutorial-git
76 
Muito obrigado!

Contenu connexe

En vedette

Docker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaDocker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaHumberto Streb
 
How to add clickable links to slideshare
How to add clickable links to slideshareHow to add clickable links to slideshare
How to add clickable links to slideshareChris Humphreys
 
Fp without functional language
Fp without functional languageFp without functional language
Fp without functional languageHumberto Streb
 

En vedette (6)

Docker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaDocker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entrega
 
How to add clickable links to slideshare
How to add clickable links to slideshareHow to add clickable links to slideshare
How to add clickable links to slideshare
 
Sinatra
SinatraSinatra
Sinatra
 
Fp without functional language
Fp without functional languageFp without functional language
Fp without functional language
 
Socket.io
Socket.ioSocket.io
Socket.io
 
Apache samza
Apache samzaApache samza
Apache samza
 

Similaire à Descomplicando o controle de versão com git

Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACDanilo Pinotti
 
EIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de SoftwareEIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de SoftwareAldson Diego
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Danilo Pinotti
 
GIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento SemânticoGIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento SemânticoDjanilson Alves
 
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Tchelinux
 
Git - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteGit - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteWaldyr Felix
 
Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com GitVagner Santana
 
Conhecendo o git.
Conhecendo o git.Conhecendo o git.
Conhecendo o git.Rafael Ivan
 
Git - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoGit - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoWilliam Lima
 

Similaire à Descomplicando o controle de versão com git (20)

Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENAC
 
EIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de SoftwareEIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de Software
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)
 
Git 101
Git 101Git 101
Git 101
 
Git
GitGit
Git
 
Controle de versão e colaboração com Git
Controle de versão e colaboração com GitControle de versão e colaboração com Git
Controle de versão e colaboração com Git
 
GIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento SemânticoGIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento Semântico
 
Git e Github
Git e GithubGit e Github
Git e Github
 
Git e github
Git e githubGit e github
Git e github
 
Git para quem vem do SVN
Git para quem vem do SVNGit para quem vem do SVN
Git para quem vem do SVN
 
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
 
Conhecendo o GIT
Conhecendo o GITConhecendo o GIT
Conhecendo o GIT
 
Git Rápido e Fácil
Git Rápido e FácilGit Rápido e Fácil
Git Rápido e Fácil
 
Git - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteGit - Rápido, seguro, eficiente
Git - Rápido, seguro, eficiente
 
Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com Git
 
Git ao GitHub
Git ao GitHubGit ao GitHub
Git ao GitHub
 
Conhecendo o git.
Conhecendo o git.Conhecendo o git.
Conhecendo o git.
 
Git - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoGit - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotado
 
Gerenciando projetos com Git e GitHub
Gerenciando projetos com Git e GitHubGerenciando projetos com Git e GitHub
Gerenciando projetos com Git e GitHub
 
Git
GitGit
Git
 

Descomplicando o controle de versão com git

  • 1. Descomplicando o controle de versão com Git Humberto Streb
  • 2. 2 Humberto Streb Bel. Sistemas de Informação Desenvolvedor Java Entusiasta Linux Curioso github.com/hstreb hstreb@gmail.com
  • 3. 3 Controle de versão “É um software com a finalidade de gerenciar diferentes versões no desenvolvimento de um documento qualquer.” [Wikipédia]
  • 6. 6 Vantagens Histórico de alterações Facilidade de reverter alterações Facilidade de ramificar o projeto Facilidade de marcar (tag) dados Backup do código fonte
  • 7. 7 Git “É um sistema de controle de versão distribuido gratuito e open source desenhado para lidar com tudo, desde pequenos até grandes projetos com rapidez e eficiência.” [git-scm.com]
  • 8. 8 Git Foco em velocidade Foco no design simples Suporte robusto a desenvolvimento não linear (milhares de branches paralelos) Totalmente distribuído Capaz de lidar eficientemente com grandes projetos como o kernel do Linux
  • 9. 9 Empresas que utilizam Git
  • 10. 10 Configuração $ git config --global user.name "Humberto Streb" $ git config --global user.email "hstreb@gmail.com"
  • 11. 11 Entendendo os estados
  • 12. 12 Área de trabalho É onde são carregados os arquivos vindo de um repositório (checkout). Nela estão os arquivos vigentes.
  • 13. 13 Área de preparação É uma área temporária, que contem as informações do próximo commit.
  • 14. 14 Diretório do Git É onde são armazenados as informações sobre o último commit.
  • 15. 15 Mãos na massa
  • 16. 16 init Esse comando irá inciar um repositório local na pasta onde foi executado
  • 17. 17 init $ mkdir tutorial-git $ cd tutorial-git $ git init Initialized empty Git repository in .../tutorial-git/. git/
  • 18. 18 status Mostra o estado atual do projeto
  • 19. 19 status $ git status # On branch master # # Initial commit # nothing to commit (create/copy files and use "git add" to track)
  • 20. 20 Criamos a classe App.java
  • 21. 21 status $ git status # On branch master # # Initial commit # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # App.java nothing added to commit but untracked files present (use "git add" to track)
  • 22. 22 add Adiciona os arquivos para o índice do git.
  • 23. 23 add $ git add . $ git status # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: App.java #
  • 24. 24 commit Salva as alterações contidas no índice para o repositório do git
  • 25. 25 commit $ git commit -m "Iniciando o projeto" [master (root-commit) aab8232] Iniciando o projeto 1 file changed, 7 insertions(+) create mode 100644 App.java
  • 26. 26 commit $ git commit -m "Iniciando o projeto" [master (root-commit) aab8232] Iniciando o projeto 1 file changed, 7 insertions(+) create mode 100644 App.java $ git status # On branch master nothing to commit, working directory clean
  • 27. 27 Criando teste com valores fixos
  • 28. 28 commit git add . $ git commit -m "Teste com valores fixos" [master 0dc82d0] Teste com valores fixos 1 file changed, 5 insertions(+), 1 deletion(-)
  • 29. 29 log Mostra o histórico de commits
  • 30. 30 log $ git log commit 0dc82d02b8552dea278a1dfa118d3d722a33f380 Author: Humberto Streb <hstreb@gmail.com> Date: Thu Sep 12 10:52:29 2013 -0300 Teste com valores fixos commit aab8232b734b7dbd133f07d13afc2fbf642183d1 Author: Humberto Streb <hstreb@gmail.com> Date: Thu Sep 12 10:48:48 2013 -0300 Iniciando o projeto
  • 32. 32 add e commit no mesmo comando git commit -a -m "Ler do teclado" 1 file changed, 6 insertions(+), 1 deletion(-)
  • 33. 33 tag Serve como marcação para um determinado momento do projeto
  • 34. 34 tag $ git tag v-1 $ git tag v-1
  • 35. 35 branch Esse comando cria uma ramificação do projeto
  • 36. 36 branch $ git branch * master $ git branch tratarExcecao $ git checkout tratarExcecao Switched to branch 'tratarExcecao' $ git branch master * tratarExcecao
  • 37. 37 branch $ git checkout -b tratarExcecao
  • 38. 38 Adicionando o tratamento de exceções no branch
  • 39. 39 Adicionando o tratamento de exceções no branch $ git commit -a -m "Tratamento exceção" [tratarExcecao ecf16a9] Tratamento exceção 1 file changed, 9 insertions(+), 3 deletions(-)
  • 40. 40 checkout É o comando responsável por “atualizar” para o branch que deseja ir.
  • 41. 41 checkout para o master $ git checkout master Switched to branch 'master'
  • 42. 42 O arquivo App.java voltou para o formato anterior
  • 43. 43 Adição do método processaResposta
  • 44. 44 Adição do método processaResposta $ git commit -a -m "Adicção método processaResposta" [master 4c163d6] Adicção método processaResposta 1 file changed, 4 insertions(+)
  • 45. Corrigindo o último commit $ git log ... 45 Adicção método processaResposta $ git commit --amend -m "Adição método processaResposta" [master 9deaa21] Adição método processaResposta 1 file changed, 4 insertions(+) $ git log ... Adição método processaResposta
  • 46. 46 dif Mostra as diferenças entre o branch atual e o destinatário
  • 47. 47 dif $ git checkout tratarExcecao Switched to branch 'tratarExcecao'
  • 48. $ git diff master diff --git a/App.java b/App.java index 3edc65f..15b4da3 100644 --- a/App.java +++ b/App.java @@ -4,14 +4,16 @@ public class App { 48 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); - - System.out.println("Digite um numero:"); - int numero = scanner.nextInt(); - processaResultado(numero); - } - - private static void processaResultado(int numero) { + int numero; + try { + System.out.println("Digite um número:"); + numero = scanner.nextInt(); + } catch (Exception e) { + System.out.println("Não foi possível ler o valor digitado! O valor será 0."); + numero = 0; + } + int dobro = numero * numero; System.out.println("O dobro: " + dobro);
  • 49. 49 merge Responsável por fazer a concatenação das diferenças entre os branches
  • 50. 50 Fazendo merge com o master $ git merge master Auto-merging App.java Merge made by the 'recursive' strategy. App.java | 4 ++++ 1 file changed, 4 insertions(+)
  • 51. 51 Adicionando o método lerInteiro
  • 52. 52 Adicionando o método lerInteiro $ git checkout master Switched to branch 'master' $ git commit -a -m "Adição método lerInteiro" [master e41e17b] Adição método lerInteiro 1 file changed, 9 insertions(+), 4 deletions(-)
  • 53. 53 Fazendo merge com o master (2) $ git checkout tratarExcecao Switched to branch 'tratarExcecao' $ git merge master Auto-merging App.java CONFLICT (content): Merge conflict in App.java Automatic merge failed; fix conflicts and then commit the result.
  • 54. 54
  • 55. 55 Consertar o método lerInteiro
  • 56. 56 Fazer o merge do branch para o master $ git commit -a -m "Tratar exceção no método lerInteiro" [tratarExcecao c7053bb] Tratar exceção no método lerInteiro $ git checkout master Switched to branch 'master' $ git merge tratarExcecao Updating e41e17b..c7053bb Fast-forward App.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
  • 58. 58 remote É utilizado para adicionar um repositório remoto ao projeto
  • 59. 59 remote $ git remote add origin git@github.com:hstreb/tutorial-git.git
  • 60. 60 clone É utilizado para “clonar” um repositório.
  • 61. 61 clone $ git clone git@github.com:hstreb/tutorial-git.git Cloning into 'projeto'... remote: Counting objects: 27, done. remote: Compressing objects: 100% (10/10), done. remote: Total 27 (delta 9), reused 24 (delta 9) Receiving objects: 100% (27/27), done. Resolving deltas: 100% (9/9), done.
  • 62. 62 push Este comando envia as alterações contidas no repositório local para o repositório remoto
  • 63. 63 push $ git push origin master Warning: Permanently added the RSA host key for IP address '192.30.252.131' to the list of known hosts. Counting objects: 24, done. Delta compression using up to 2 threads. Compressing objects: 100% (16/16), done. Writing objects: 100% (24/24), 2.26 KiB, done. Total 24 (delta 9), reused 0 (delta 0) To git@github.com:hstreb/tutorial-git.git * [new branch] master -> master
  • 64. 64 push branches $ git push origin tratarExcecao Warning: Permanently added the RSA host key for IP address '192.30.252.130' to the list of known hosts. Total 0 (delta 0), reused 0 (delta 0) To git@github.com:hstreb/tutorial-git.git * [new branch] tratarExcecao -> tratarExcecao
  • 65. 65 pull É utilizado para baixar as alterações contidas no repositório remoto
  • 66. 66 pull $ git pull origin master From github.com:hstreb/tutorial-git * branch master -> FETCH_HEAD Updating c7053bb..85cde87 Fast-forward README.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 README.md
  • 67. 67 stash Stash é utilizado para adicionar várias alterações em uma pilha, que é armazenada localmente
  • 68. 68 stash Adicionar alterações $ git stash Saved working directory and index state "WIP on master: 049d078 added the index file" HEAD is now at 049d078 added the index file (To restore them type "git stash apply")
  • 69. 69 stash listar alterações já realizadas $ git stash list stash@{0}: WIP on master: 049d078 added the index file stash@{1}: WIP on master: c264051... Revert "added file_size" stash@{2}: WIP on master: 21d80a5... added number to log
  • 70. 70 stash aplicar alterações $ git stash apply # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # # modified: App.java #
  • 71. 71 stash aplicar e retirar da lista as alterações $ git stash pop # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # # modified: App.java #
  • 72. 72 stash aplicar alterações mais antigas $ git stash apply@{2} # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # # modified: App.java #
  • 73. 73 stash aplicar alterações mais antigas {0} representa o último stash que você fez; {1} representa penúltimo, e assim por diante. Essa sintaxe também aparece em outros lugares (show, por exemplo).
  • 75. 75 Links http://git-scm.com https://github.com/hstreb/tutorial-git