Git Descomplicado
-
Upload
fernando-oliveira -
Category
Technology
-
view
597 -
download
5
Transcript of Git Descomplicado
![Page 2: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/2.jpg)
![Page 3: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/3.jpg)
Uma breve história...
![Page 4: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/4.jpg)
Limpe sua mente de tudo que você conhece sobre outros sistemas de controle de versão…
Antes de começar…
![Page 5: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/5.jpg)
Git não é Subversion(Thanks God!)
![Page 6: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/6.jpg)
git-scm.com
![Page 7: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/7.jpg)
Features
![Page 8: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/8.jpg)
GIT é um sistema de controle de versão distribuído
![Page 9: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/9.jpg)
Sistemas de controle de versão centralizado
![Page 10: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/10.jpg)
Sistemas de controle de versão distribuído
![Page 11: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/11.jpg)
“Snapshots”, ao invés de “diferenças”
![Page 12: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/12.jpg)
Conceitualmente, grande parte dos outros sistemas armazenam informação como uma lista de arquivos baseados em mudanças
![Page 13: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/13.jpg)
GIT pensa seus dados mais como um conjunto de snapshots de um mini sistema de arquivos
![Page 14: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/14.jpg)
quase toda operação é local
A maioria das operações no Git só precisa de arquivos e recursos locais para ser executada
![Page 15: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/15.jpg)
Git garante integridadeTudo no Git é “check-summed”
![Page 16: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/16.jpg)
OS três estados
![Page 17: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/17.jpg)
Configurações…
![Page 18: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/18.jpg)
Sua identificação$ git config --global user.name “Fernando Oliveira”$ git config --global user.email [email protected]
Se você quiser sobrescrever estas configurações com um nome e/ou email diferente(s) para um projeto específico, você pode executar os
mesmos comandos sem a opção --global no repositório específico.
![Page 19: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/19.jpg)
Seu editor$ git config --global core.editor emacs
![Page 20: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/20.jpg)
Sua “DiffTool”$ git config --global merge.tool vimdiff
![Page 21: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/21.jpg)
Verificando suas configurações$ git config –list
Ou uma chave específica$ git config user.name
![Page 22: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/22.jpg)
Estas configurações também podem ser feitas editando o arquivo ~ /.
gitconfig
![Page 23: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/23.jpg)
Buscando ajuda$ git help <verb>
$ git <verb> --help
$ man git-<verb>
![Page 24: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/24.jpg)
Inicializando um repositório Git em um diretório existente
$ git init
![Page 25: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/25.jpg)
Clonando um repositório existente
$ git clone <repository address>
![Page 26: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/26.jpg)
Gravando mudanças no repositório
![Page 27: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/27.jpg)
Verificando o status dos seus arquivos
$ git status
![Page 28: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/28.jpg)
”Tracking” novos arquivos ou ”Staging” arquivos modificados
$ git add
![Page 29: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/29.jpg)
Visualizando mudanças “Staged” e “Unstaged”
$ git status
$ git diff
$ git diff --cached
![Page 30: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/30.jpg)
Submetendo suas alterações
$ git commit
$ git commit –m ‘some message’
$ git commit –a
$ git commit –am ‘some message’
![Page 31: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/31.jpg)
![Page 32: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/32.jpg)
Removendo arquivos
$ git rm <file>
$ git rm --cached <file>
![Page 33: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/33.jpg)
Movendo arquivos
$ git mv file_from file_to
Isto é equivalente a
$ mv file_from file_to
$ git rm file_from
$ git add file_to
![Page 34: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/34.jpg)
Visualizando o histórico de commits
$ git log
$ git log --stat
$ git log –graph
$ gitk
![Page 35: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/35.jpg)
Desfazendo coisas
![Page 36: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/36.jpg)
Alterando seu último commit
$ git commit --amend
![Page 37: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/37.jpg)
“Unstaging” um arquivo “Staged”
$ git reset HEAD <file>
![Page 38: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/38.jpg)
Revertendo modificações em um arquivo
$ git checkout -- <file>
![Page 39: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/39.jpg)
TRAbalhando com repositórios remotos
![Page 40: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/40.jpg)
Clonando
$ git clone <endereço do repositório>
![Page 41: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/41.jpg)
Visualizando
$ git remote
$ git remote -v
![Page 42: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/42.jpg)
Adicionando repositórios remotos
$ git remote add <remote_name> <remote_address>
![Page 43: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/43.jpg)
Buscando e puxando do repositório remoto
$ git fetch [remote-name]
$ git pull [remote-name]
![Page 44: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/44.jpg)
Enviando para o repositório remoto
$ git push origin master
![Page 45: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/45.jpg)
Inspecionando um repositório remoto
$ git remote show origin
![Page 46: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/46.jpg)
Removendo e renomeando repositórios remotos
$ git remote rename from_name to_name
$ git remote rm name
![Page 47: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/47.jpg)
Tagging
![Page 48: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/48.jpg)
Tipos de tag
LightWeight tags
Annotated tags
![Page 49: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/49.jpg)
Listando suas tags
$ git tag
![Page 50: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/50.jpg)
Criando annotated Tags
$ git tag -a v1.4 -m 'my version 1.4’
![Page 51: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/51.jpg)
CriandoLightweight Tags
$ git tag v1.4-lw
![Page 52: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/52.jpg)
Verificando Tags
$ git show v1.4
![Page 53: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/53.jpg)
Tagging Later
$ git tag -a v1.2 -m 'version 1.2' 9fceb02
![Page 54: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/54.jpg)
Compartilhando Tags
$ git push origin v1.5
$ git push origin --tags
![Page 55: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/55.jpg)
BRANCHING
![Page 56: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/56.jpg)
Visualizando Branchs
$ git branch
$ git branch -v
![Page 57: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/57.jpg)
Criando Branchs
$ git branch <nome_do_branch>
$ git checkout -b <nome_do_branch>
![Page 58: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/58.jpg)
Submetendo alterações no novo branch
$ git commit -a -m ’<mensagem>’
![Page 59: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/59.jpg)
Mudando de branch
$ git checkout <nome_do_branch>
![Page 60: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/60.jpg)
Merging
$ git merge <nome_do_branch>
![Page 61: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/61.jpg)
Entendendo melhor o merge
![Page 62: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/62.jpg)
Excluíndo
$ git branch -d <nome_do_branch>
![Page 63: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/63.jpg)
rebasing
![Page 64: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/64.jpg)
![Page 65: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/65.jpg)
![Page 66: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/66.jpg)
Excluíndo
$ git rebase <nome_do_branch>
![Page 67: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/67.jpg)
Atenção
Não faça rebase de commits que você enviou para um repositório público.
![Page 68: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/68.jpg)
Stashing
![Page 69: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/69.jpg)
Criando
$ git stash
![Page 70: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/70.jpg)
Listando stashs
$ git stash list
![Page 71: Git Descomplicado](https://reader031.fdocuments.net/reader031/viewer/2022012405/5561551ed8b42a8a7d8b52dc/html5/thumbnails/71.jpg)
Recuperando stashs
$ git stash apply