SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
GIT
Controle de Versão
Centralizado	

• SVN	

Distribuído	

• Mercurial	

• GIT
GIT
• Criado por LinusTorvalds	

• Sistema de snapshots 	

• Trabalho localmente	

• Integridade(Hash SHA-1)
Instalação
Linux	

!
$ yum install git-core	

$ apt-get install git
Instalação
Windows	

!
http://msysgit.github.com
Instalação
Mac	

!
http://code.google.com/p/git-osx-installer	

!
$ sudo port install git-core +svn +doc
+bash_completion +gitweb
Configurações Básicas
Dados pessoais	

$ git config --global user.name "John Doe"	

$ git config --global user.email johndoe@example.com
Configurações Básicas
Editores	

$ git config --global core.editor "mate -wl1"	

$ git config --global core.editor "vim"	

$ git config --global core.editor "nano"
Configurações Básicas
Cores	

$ git config --global core.diff "auto"	

$ git config --global core.status "auto"	

$ git config --global core.interactive "auto"	

$ git config --global core.grep "auto"	

$ git config --global core.branch "auto"
Configurações Básicas
Alias	

$ git config --global alias.st "status"	

$ git config --global alias.ci "commit"	

$ git config --global alias.co "checkout"	

$ git config --global alias.lg "log --oneline --decorate"
Configurações Básicas
Helpers	

$ git config --global --list //Listagem das configurações	

$ git config --global core.autocrlf input //Git ajusta a quebra de
linha
Estados
Comandos Básicos
• $ git init //Inicia o repositório git	

• $ git add ( . || files) //Adiciona os arquivos no modo stage	

• $ git rm ( . || files) //Remove o arquivo do git	

• $ git status //Mostra os status dos arquivos no git 	

• $ git commit //Adiciona as alterações no git 	

• $ git diff //Mostra a diferença entre os arquivos
Comandos Básicos
• $ git clone (url || path) //Copiar um repositório	

• $ git push //Enviar todos os commites para o repositório remoto	

• $ git pull //Puxar todos os commites do repositórios remoto	

• $ git log //Mostra todos os commits feitos	

• $ git show //Mostra as alterações dentro de um commit	

• .gitignore //Arquivo onde ignora alguns arquivos
GUI
Linux	

https://wiki.gnome.org/Apps/giggle
Mac	

http://www.git-tower.com/	

http://mac.github.com/
Windows	

https://code.google.com/p/tortoisegit/
GITK
!
GitGutter - Sublime
Remotes
!
$ git remote -v //Listagem de repositórios remotos	

$ git remote add url //Adicionar link de repositórios remoto	

$ git remote remover url //Remover referência de um repositórios
$ Git Reset
$ git reset --soft HEAD ~1 	

//Voltar commit sem perder as alterações	

$ git reset --hard HEAD ~1 	

//Voltar commit e remove as alterações	

$ git reset ORIG_HEAD	

//Voltar o commit HEAD do origin
$ Git Revert
$ git revert HEAD~1 	

//Refazer o commit anterior	

$ git revert HASH	

//Refazer o commit especificando a hash
Branch
$ git branch nome //Criar	

$ git checkout -b nome //Criar e entrar	

$ git checkout -D nome //Remover local	

$git push remote :branch //Remover remoto
Branch
Branch
$ git branch testing
Branch
Branch
$ git checkout testing
Branch
$ vim test.rb	

$ git commit -a -m 'Adicionar teste'
Branch
$ git checkout master
Branch
$ git checkout master
$ vim test.rb	

$ git commit -a -m 'Mais testes'
Merge
$ git merge branch
Merge
Merge
$ git checkout -b iss53
Merge
$ git checkout -b iss53
$ git commit -a -m 'Novo footer'
Merge
$ git checkout master	

$ git checkout -b hotfix	

$ git commit -a -m 'Mudou o email'
Merge
$ git checkout master	

$ git checkout -b hotfix	

$ git commit -a -m 'Mudou o email'
$ git checkout master	

$ git merge hotfix
Merge
$ git checkout iss53	

$ git commit -a -m 'Novo Footer'
Merge
$ git checkout iss53	

$ git commit -a -m 'Novo Footer'
$ git checkout master	

$ git merge iss53
Merge Unificado
$ git merge --squash branch
Rebase
$ git rebase branch
Rebase
Rebase
$ git merge experiment
Rebase
Rebase
$ git checkout experiment	

$ git rebase master
Rebase
$ git checkout experiment	

$ git rebase master
Diff
$ git diff HASH > file.diff
Diff
$ git diff HASH > file.diff
$ git am file.diff
Conflito
<<<<<<< HEAD:index.html	

<div id="footer">contato : email.support@github.com</div>	

=======	

<div id="footer">	

por favor nos contate em support@github.com	

</div>	

>>>>>>> iss53:index.html
Conflito
<<<<<<< HEAD:index.html	

<div id="footer">contato : email.support@github.com</div>	

=======	

<div id="footer">	

por favor nos contate em support@github.com	

</div>	

>>>>>>> iss53:index.html
$ git mergetool
Stash
$ git stash save //Salvar arquivos alterados no stash	

$ git stash list //Listar todos os stashs	

$ git stash pop //Adicionar as alteração no workspace	

$ git stash drop //Remove o stash
Tags
$ git tag //Lista	

$ git tag name HASH //Adicionar em um commit	

$ git tag -d name //Remove a tag
Sub Modulos
$ git submodul add url path 	

$ git submodul init	

$ git submodul update
Git SVN
$ git svn clone url	

$ git svn fetch	

$ git svn dcommit	

$ git svn branch
Servers
Ferramentas GitHub
• Fork	

• Issues 	

• Pull Requests	

• Wiki
URL GitHub
git@github.com:Xhamps/expirience_html5.git
Usuário SSH
Server Repositório
Usuário
Server Local
$ git init --bare
Hooks
Outros comandos
• $ git fetch //Puxar todas as atualizações sem dar um merge	

• $ git ls-remote //Listar tags remotas	

• $ git reflog //Mostrar todas alterações no git	

• $ git blame //Lista quem alterou determinado arquivo	

• $ git gc //Limpa todo o git	

• $ git remote prune origin //Limpar referência de branch
Outros comandos
• $ git cherry -v branch //Mostrar todos os commits não enviados	

• $ git cherry-pick hash //Adicionar só um commit de outro branch ao branch atual	

• $ git update-index --assume-unchanged //Não trackear alterações de um arquivo	

• $ git commit --amend // Refazer o último commit 	

• $ git checkout --orphan // Criar branch vazio	

• $ git pull --rebase // Forçar rebase no envio
Workflow
http://danielkummer.github.io/git-flow-cheatsheet/
index.pt_BR.html
Obrigado.
Referências	

http://git-scm.com/book/pt-br	

Imagens	

http://octodex.github.com

Mais conteúdo relacionado

Mais procurados

Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017
Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017
Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017Tchelinux
 
Gentoo por marcelo rocha
Gentoo por marcelo rochaGentoo por marcelo rocha
Gentoo por marcelo rochaSENAC RIO
 
Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com GitVagner Santana
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucaoFernando Ike
 
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Aécio Pires
 
Git e git hub para iniciantes
Git e git hub para iniciantesGit e git hub para iniciantes
Git e git hub para iniciantesMario Ernesto
 
Deploy Heroku
Deploy HerokuDeploy Heroku
Deploy HerokuCreditas
 

Mais procurados (13)

Conhecendo o GIT
Conhecendo o GITConhecendo o GIT
Conhecendo o GIT
 
Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017
Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017
Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017
 
Organizando a casa
Organizando a casaOrganizando a casa
Organizando a casa
 
Git
GitGit
Git
 
Gentoo por marcelo rocha
Gentoo por marcelo rochaGentoo por marcelo rocha
Gentoo por marcelo rocha
 
Docker volumes
Docker volumesDocker volumes
Docker volumes
 
Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com Git
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucao
 
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
 
Git e git hub para iniciantes
Git e git hub para iniciantesGit e git hub para iniciantes
Git e git hub para iniciantes
 
Git
GitGit
Git
 
[CEFETMG] - Introdução ao Github
[CEFETMG] - Introdução ao Github[CEFETMG] - Introdução ao Github
[CEFETMG] - Introdução ao Github
 
Deploy Heroku
Deploy HerokuDeploy Heroku
Deploy Heroku
 

Destaque (9)

Kandivali times
Kandivali timesKandivali times
Kandivali times
 
Yashomani
YashomaniYashomani
Yashomani
 
Kandivali times
Kandivali timesKandivali times
Kandivali times
 
Good 1 3
Good 1 3Good 1 3
Good 1 3
 
Mt
MtMt
Mt
 
Mt
MtMt
Mt
 
Abhiman bharat may 2013
Abhiman bharat may 2013Abhiman bharat may 2013
Abhiman bharat may 2013
 
5 may akhil bhartiya samachar
5 may akhil bhartiya samachar5 may akhil bhartiya samachar
5 may akhil bhartiya samachar
 
The gamification theory jci v01
The gamification theory jci v01The gamification theory jci v01
The gamification theory jci v01
 

Semelhante a Controle de versão com GIT

Git - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteGit - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteWaldyr Felix
 
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em pazViajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em pazFlávio Lisboa
 
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
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACDanilo Pinotti
 
Descomplicando o controle de versão com git
Descomplicando o controle de versão com gitDescomplicando o controle de versão com git
Descomplicando o controle de versão com gitHumberto Streb
 
Use o git e perca o medo de errar
Use o git e perca o medo de errarUse o git e perca o medo de errar
Use o git e perca o medo de errarBruno Calheira
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Danilo Pinotti
 
Git controlo de_versoes
Git controlo de_versoesGit controlo de_versoes
Git controlo de_versoesRicardo Soares
 

Semelhante a Controle de versão com GIT (20)

Git - Não perca o que estava funcionando!
Git - Não perca o que estava funcionando!Git - Não perca o que estava funcionando!
Git - Não perca o que estava funcionando!
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao git
 
Git - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteGit - Rápido, seguro, eficiente
Git - Rápido, seguro, eficiente
 
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em pazViajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
 
Git flow no projeto
Git flow no projetoGit flow no projeto
Git flow no projeto
 
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 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
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENAC
 
Descomplicando o controle de versão com git
Descomplicando o controle de versão com gitDescomplicando o controle de versão com git
Descomplicando o controle de versão com git
 
Git - Visão Geral
Git - Visão GeralGit - Visão Geral
Git - Visão Geral
 
Use o git e perca o medo de errar
Use o git e perca o medo de errarUse o git e perca o medo de errar
Use o git e perca o medo de errar
 
Git na pratica
Git na praticaGit na pratica
Git na pratica
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)
 
Git controlo de_versoes
Git controlo de_versoesGit controlo de_versoes
Git controlo de_versoes
 
Git
GitGit
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 e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 
Git e github
Git e githubGit e github
Git e github
 
Aprendendo Git
Aprendendo GitAprendendo Git
Aprendendo Git
 
Git + git hub
Git + git hubGit + git hub
Git + git hub
 

Controle de versão com GIT