SlideShare una empresa de Scribd logo
1 de 44
Descargar para leer sin conexión
Git em pequenos projetos
Tchelinux 2019
IFSul campus Sant’Ana do Livramento
Git em pequenos projetos
Sandro Custódio
TI desde 1993
Servidor Público desde 1995
Na Justiça Federal desde 1999
Anos 90: Programador e Operador de CPD
Anos 2000: Sysadmin e suporte a usuário
Desde 2005: Suporte a Usuários.
Membro do Tchelinux.org desde 2008.
Em 2018: Retornado ao desenvolvimento.
Contexto:
Pequenos projetos
Projetos com poucos participantes que buscam
desenvolver um sistema ou ferramenta e
precisam integrar seus esforços num produto
final.
Roteiro
● Conceitos
● Config. Inicial
● Commit local
● Remote: pull/push
● Branch / Merge
● Exemplo em pendrive
● Extra - Comandos / Extensões VS Code
● Exemplos Práticos (comandos e VS Code).
Git – O que é?
● Manter histórico de alterações no código
● Autores (Quem?)
● Data das alterações (Quando?)
● Motivo das alterações (Por que?)
Git – O que é?
● Facilita a colaboração (trabalho em equipe).
● Auxilia na identificação e resolução de
problemas.
● Histórico das m…, digo, dos problemas.
● Permite fechar versões.
Git – Conceitos
Git – Conceitos
● Working directory
– Arquivos e pastas do seu projeto.
● Staging area
– Arquivos ou pastas modificados e selecionados para o
próximo commit.
● Repositório local
– Pasta local do git (.git) onde ficam os arquivos que
contém os vários commits realizados.
● Repositório remoto
– Pasta ou serviço remoto onde seu projeto está
armazenado, nos mesmos moldes do repositório local
Git – Conceitos
● Working directory
– Armazena arquivos e pastas do seu projeto.
– Contém personalização, ignorando arquivos e
pastas desnecessárias ao projeto.
– Nesta camada se decide o que entrará no projeto
e o que será ignorado do controle de versão dos
arquivos.
– Principais comandos:
$ git status
$ git add <arquivos>
Git – Conceitos
● Staging area
– Antes do commit, os arquivos são selecionados
para ser comitados
– Comandos:
$ git add <arquivo>
$ git add . # adiciona todos os arquivos modificados
Git – Conceitos
● Repositório local
– Pasta local do git (.git) onde ficam os arquivos que
contém os vários commits realizados.
– Armazena cada alteração de cada arquivo
controlado do projeto.
– Contém todos os commits de todos os
participantes do projeto em todos os micros.
– Comando básico:
$ git commit …
$ git commit -m “Descricao (sem acentos) dos commit”
Git – Conceitos
● Repositório remoto
– Pasta ou serviço remoto onde seu projeto está
armazenado, nos mesmos moldes do repositório
local.
– Geralmente é um projeto num site de hospedagem
de projetos git.
– https://github.com
– https://gitlab.com
– https://bitbucket.com
– Repositório numa pasta da rede local.
– Repositório numa pasta de um pendrive.
Git – Conceitos
● Todos os repositórios (locais e remoto) contém
todos os conteúdos de todos os commits.
● Basta um repositório ok para todos serem
restaurados.
● Todos os micros envolvidos ficam sempre
sincronizados (atualizados).
Git – Conceitos
Roteiro
● Conceitos
● Config. Inicial
● Commit local
● Remote: pull/push
● Branch / Merge
● Exemplo em pendrive
● Extra - Comandos / Extensões VS Code
● Exemplos Práticos (comandos e VS Code).
Git - Configuração Inicial
Do seu usuário Git, só uma vez por máquina
$ git config --global user.name "Fulano de Tal"
$ git config --global user.email "asd@asd.com"
Git - Configuração Inicial
Criando/inicializando o git em um projeto:
$ cd pasta_do_projeto
$ git init
Roteiro
● Conceitos
● Config. Inicial
● Commit local
● Remote: pull/push
● Branch / Merge
● Exemplo em pendrive
● Extra - Comandos / Extensões VS Code
● Exemplos Práticos (comandos e VS Code).
Git – Commit local
Commit
● Commit: Registro das alterações no repo local
● linha de comando
● VS Code
● Netbeans
● Etc.
Commit – linha de comando
Ver situação/status
$ git status
Adicionando arquivos para o próximo commit
$ git add <arquivos>
Comitando no repositório local
$ git commit -m “Primeiro commit do projeto.”
Roteiro
● Conceitos
● Config. Inicial
● Commit local
● Remote: pull/push
● Branch / Merge
● Exemplo em pendrive
● Extra - Comandos / Extensões VS Code
● Exemplos Práticos (comandos e VS Code).
Git – Remote: pull e push
Git - Remote
● Adicionar um repositório remoto
$ git remote add origin https://github.com/…
Git - Pull
● Traz as alterações dos colegas antes de
inicarmos os trabalhos na máquina local
$ git pull origin master
Git - Push
● ENVIA as alterações da máquina local para o
repositório remoto, unificando o projeto.
$ git push origin master
Roteiro
● Conceitos
● Config. Inicial
● Commit local
● Remote: pull/push
● Branch / Merge
● Exemplo em pendrive
● Extra - Comandos / Extensões VS Code
● Exemplos Práticos (comandos e VS Code).
Branchs
Git - Branch
# cria o branch
$ git branch teste
# passa para o branch teste (sai do master)
$ git checkout teste
# cria o branch teste já fazendo o checkout
$ git checkout -b teste
Git - Branch
# para sair do branch teste e voltar ao master
$ git status
# ou informar o que foi feito até o momento como "funcoes
basicas"
$ git commit -a -m "ponto de commit para poder voltar
depois"
$ git checkout master
# depois, para voltar ao teste e continuar o trabalho
$ git checkout teste
Git - Branch
# trazendo as alterações do branch de teste para
o branch master (unifincando no master)
# vai para o master
$ git checkout master
# traz as alteracoes de teste para master
$ git merge teste
Git - Branch
# caso não precise mais trabalhar no branch
teste, podemos apaga-lo
$ git branch -d teste
Git – Merge
Um exemplo…
# em caso de conflito ao fazer merge
$ git checkout -b teste2 # cria novo merge e faz checkout nele
... alterar um arquivo em deteminadas linhas ...
$ git commit -a -m "bug em x e y corrigido, agora com parametro $ID"
... enquanto isso, outro colega no branch master ...
(git checkout master)
... altera o mesmo arquivo quase nas mesmas linhas ...
$ git commit -a -m "bug em x e z corrigido, agora com verif. de $valor"
... quando voce tenta fazer merge (unificar) com master ...
(git checkout master)
$ git merge teste2 # ele faz o merge mas vai informar que há¡ conflitos
... no codigo fonte onde há conflitos, o git insere ambas as versoes das linhas com os devidos comentarios ...
... e voce edita diretamente no codigo fonte para deixar apenas a versao que vai ficar ...
# commit dos arquivos já sem os conflitos (isto já no master, apos o merge)
$ git commit -a -m "bug em x, y e z corrigido, agora com parametro $ID e verif. de $valor"
Roteiro
● Conceitos
● Config. Inicial
● Commit local
● Remote: pull/push
● Branch / Merge
● Exemplo em pendrive
● Extra - Comandos / Extensões VS Code
● Exemplos Práticos (comandos e VS Code).
Git – Repositório num pendrive
Git – Repositório num pendrive
# criando o repositório central numa pasta
# pode ser em rede, local ou num pendrive
$ cd nome_da_pasta
$ git init --bare
Git – Repositório num pendrive
# a primeira máquina
$ cd nome_da_pasta
$ git init
(fazer alterações)
$ git remote add origin /caminho/ate/a/pasta
$ git push origin master
Git – Repositório num pendrive
# as demais máquinas
$ cd nome_da_pasta
$ git init
$ git remote add origin /caminho/ate/a/pasta
$ git pull origin master
(fazer alterações)
$ git push origin master
Git – Repositório num pendrive
# forçando um Merge
Na máquina A alterar linha N de um arquivo.
Na máquina B alterar a mesma linha.
Fazer push em ambas as máquinas.
Roteiro
● Conceitos
● Config. Inicial
● Commit local
● Remote: pull/push
● Branch / Merge
● Exemplo em pendrive
● Extra - Comandos / Extensões VS Code
● Exemplos Práticos (comandos e VS Code).
Git – Comandos e Extensões
Comandos:
status, remote, pull, push, clone, fetch, branch,
checkout, merge, diff, log, …
VS Code:
Git History
Git Lens
Roteiro
● Conceitos
● Config. Inicial
● Commit local
● Remote: pull/push
● Branch / Merge
● Exemplo em pendrive
● Extra - Comandos / Extensões VS Code
● Exemplos Práticos (comandos e VS Code)
Git – Exemplos práticos
Ver comandos no arquivo extra em
github.com/sandrocustodiobr/palestras
VS Code, integrado na barra em
Netbeans, botão direito.
Sandro Custódio
Tchelinux desde 2008
Servidor Publico Federal desde 1999
TI desde 1993
github.com/sandrocustodiobr/palestras

Más contenido relacionado

La actualidad más candente

Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com GitVagner Santana
 
Git e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson AjacksonGit e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson AjacksonAlysson Ajackson
 
Git - GitHub
Git - GitHubGit - GitHub
Git - GitHubWagner
 
Git - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoGit - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoWilliam Lima
 
Treinamento git - Papos RBSDev
Treinamento git - Papos RBSDevTreinamento git - Papos RBSDev
Treinamento git - Papos RBSDevHélio Medeiros
 
Aula 2 - Curso Git e Github - Webschool
Aula 2 - Curso Git e Github - WebschoolAula 2 - Curso Git e Github - Webschool
Aula 2 - Curso Git e Github - WebschoolBruno Orlandi
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao GitOto Junior
 
Git e Github - Comandos e conceitos básicos
Git e Github - Comandos e conceitos básicos Git e Github - Comandos e conceitos básicos
Git e Github - Comandos e conceitos básicos Jonathan Célio
 
Como fazer controle de versões de dados e modelos de Machine Learning usando...
 Como fazer controle de versões de dados e modelos de Machine Learning usando... Como fazer controle de versões de dados e modelos de Machine Learning usando...
Como fazer controle de versões de dados e modelos de Machine Learning usando...Alexandre Ray
 
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012Mauro George
 
Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET ComputaçãoBruno Orlandi
 

La actualidad más candente (20)

Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com Git
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 
Git e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson AjacksonGit e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson Ajackson
 
Git
GitGit
Git
 
Git flow no projeto
Git flow no projetoGit flow no projeto
Git flow no projeto
 
Git - GitHub
Git - GitHubGit - GitHub
Git - GitHub
 
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 - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoGit - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotado
 
Treinamento git - Papos RBSDev
Treinamento git - Papos RBSDevTreinamento git - Papos RBSDev
Treinamento git - Papos RBSDev
 
Git v2
Git v2Git v2
Git v2
 
Git 101
Git 101Git 101
Git 101
 
Git+github
Git+githubGit+github
Git+github
 
Aprendendo Git
Aprendendo GitAprendendo Git
Aprendendo Git
 
Aula 2 - Curso Git e Github - Webschool
Aula 2 - Curso Git e Github - WebschoolAula 2 - Curso Git e Github - Webschool
Aula 2 - Curso Git e Github - Webschool
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 
Git e Github - Comandos e conceitos básicos
Git e Github - Comandos e conceitos básicos Git e Github - Comandos e conceitos básicos
Git e Github - Comandos e conceitos básicos
 
Controle de versão com e git
Controle de versão com e gitControle de versão com e git
Controle de versão com e git
 
Como fazer controle de versões de dados e modelos de Machine Learning usando...
 Como fazer controle de versões de dados e modelos de Machine Learning usando... Como fazer controle de versões de dados e modelos de Machine Learning usando...
Como fazer controle de versões de dados e modelos de Machine Learning usando...
 
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
 
Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET Computação
 

Similar a Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019

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 - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteGit - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteWaldyr Felix
 
Git controlo de_versoes
Git controlo de_versoesGit controlo de_versoes
Git controlo de_versoesRicardo Soares
 
Conhecendo o git.
Conhecendo o git.Conhecendo o git.
Conhecendo o git.Rafael Ivan
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao gitDiogo Gomes
 
Controle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoControle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoFabricio Nogueira
 
Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesLeandro Cavalcante
 
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
 
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
 

Similar a Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019 (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
GitGit
Git
 
Git - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteGit - Rápido, seguro, eficiente
Git - Rápido, seguro, eficiente
 
Git para quem vem do SVN
Git para quem vem do SVNGit para quem vem do SVN
Git para quem vem do SVN
 
Git controlo de_versoes
Git controlo de_versoesGit controlo de_versoes
Git controlo de_versoes
 
Git conceitos
Git conceitosGit conceitos
Git conceitos
 
Conhecendo o git.
Conhecendo o git.Conhecendo o git.
Conhecendo o git.
 
Git na pratica
Git na praticaGit na pratica
Git na pratica
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao git
 
GIT - Hands-On
GIT - Hands-On GIT - Hands-On
GIT - Hands-On
 
Controle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoControle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básico
 
Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de Versões
 
Git
GitGit
Git
 
Git ao GitHub
Git ao GitHubGit ao GitHub
Git ao GitHub
 
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
 
Conhecendo o GIT
Conhecendo o GITConhecendo o GIT
Conhecendo o GIT
 
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 - 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!
 

Más de Tchelinux

Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Tchelinux
 
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeInsegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeTchelinux
 
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Tchelinux
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Tchelinux
 
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeMe formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeTchelinux
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
 
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Tchelinux
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...Tchelinux
 
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Tchelinux
 
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeConstruindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeTchelinux
 
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeTchelinux
 
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Tchelinux
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...Tchelinux
 
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...Tchelinux
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Tchelinux
 
Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Tchelinux
 
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.Tchelinux
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Tchelinux
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygameTchelinux
 
Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Tchelinux
 

Más de Tchelinux (20)

Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
 
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeInsegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
 
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
 
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeMe formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
 
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
 
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
 
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeConstruindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
 
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
 
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
 
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
 
Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.
 
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes.
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygame
 
Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?
 

Último

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 

Último (9)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019

  • 1. Git em pequenos projetos Tchelinux 2019 IFSul campus Sant’Ana do Livramento
  • 2. Git em pequenos projetos Sandro Custódio TI desde 1993 Servidor Público desde 1995 Na Justiça Federal desde 1999 Anos 90: Programador e Operador de CPD Anos 2000: Sysadmin e suporte a usuário Desde 2005: Suporte a Usuários. Membro do Tchelinux.org desde 2008. Em 2018: Retornado ao desenvolvimento.
  • 3. Contexto: Pequenos projetos Projetos com poucos participantes que buscam desenvolver um sistema ou ferramenta e precisam integrar seus esforços num produto final.
  • 4. Roteiro ● Conceitos ● Config. Inicial ● Commit local ● Remote: pull/push ● Branch / Merge ● Exemplo em pendrive ● Extra - Comandos / Extensões VS Code ● Exemplos Práticos (comandos e VS Code).
  • 5. Git – O que é? ● Manter histórico de alterações no código ● Autores (Quem?) ● Data das alterações (Quando?) ● Motivo das alterações (Por que?)
  • 6. Git – O que é? ● Facilita a colaboração (trabalho em equipe). ● Auxilia na identificação e resolução de problemas. ● Histórico das m…, digo, dos problemas. ● Permite fechar versões.
  • 8. Git – Conceitos ● Working directory – Arquivos e pastas do seu projeto. ● Staging area – Arquivos ou pastas modificados e selecionados para o próximo commit. ● Repositório local – Pasta local do git (.git) onde ficam os arquivos que contém os vários commits realizados. ● Repositório remoto – Pasta ou serviço remoto onde seu projeto está armazenado, nos mesmos moldes do repositório local
  • 9. Git – Conceitos ● Working directory – Armazena arquivos e pastas do seu projeto. – Contém personalização, ignorando arquivos e pastas desnecessárias ao projeto. – Nesta camada se decide o que entrará no projeto e o que será ignorado do controle de versão dos arquivos. – Principais comandos: $ git status $ git add <arquivos>
  • 10. Git – Conceitos ● Staging area – Antes do commit, os arquivos são selecionados para ser comitados – Comandos: $ git add <arquivo> $ git add . # adiciona todos os arquivos modificados
  • 11. Git – Conceitos ● Repositório local – Pasta local do git (.git) onde ficam os arquivos que contém os vários commits realizados. – Armazena cada alteração de cada arquivo controlado do projeto. – Contém todos os commits de todos os participantes do projeto em todos os micros. – Comando básico: $ git commit … $ git commit -m “Descricao (sem acentos) dos commit”
  • 12. Git – Conceitos ● Repositório remoto – Pasta ou serviço remoto onde seu projeto está armazenado, nos mesmos moldes do repositório local. – Geralmente é um projeto num site de hospedagem de projetos git. – https://github.com – https://gitlab.com – https://bitbucket.com – Repositório numa pasta da rede local. – Repositório numa pasta de um pendrive.
  • 13. Git – Conceitos ● Todos os repositórios (locais e remoto) contém todos os conteúdos de todos os commits. ● Basta um repositório ok para todos serem restaurados. ● Todos os micros envolvidos ficam sempre sincronizados (atualizados).
  • 15. Roteiro ● Conceitos ● Config. Inicial ● Commit local ● Remote: pull/push ● Branch / Merge ● Exemplo em pendrive ● Extra - Comandos / Extensões VS Code ● Exemplos Práticos (comandos e VS Code).
  • 16. Git - Configuração Inicial Do seu usuário Git, só uma vez por máquina $ git config --global user.name "Fulano de Tal" $ git config --global user.email "asd@asd.com"
  • 17. Git - Configuração Inicial Criando/inicializando o git em um projeto: $ cd pasta_do_projeto $ git init
  • 18. Roteiro ● Conceitos ● Config. Inicial ● Commit local ● Remote: pull/push ● Branch / Merge ● Exemplo em pendrive ● Extra - Comandos / Extensões VS Code ● Exemplos Práticos (comandos e VS Code).
  • 19. Git – Commit local
  • 20. Commit ● Commit: Registro das alterações no repo local ● linha de comando ● VS Code ● Netbeans ● Etc.
  • 21. Commit – linha de comando Ver situação/status $ git status Adicionando arquivos para o próximo commit $ git add <arquivos> Comitando no repositório local $ git commit -m “Primeiro commit do projeto.”
  • 22. Roteiro ● Conceitos ● Config. Inicial ● Commit local ● Remote: pull/push ● Branch / Merge ● Exemplo em pendrive ● Extra - Comandos / Extensões VS Code ● Exemplos Práticos (comandos e VS Code).
  • 23. Git – Remote: pull e push
  • 24. Git - Remote ● Adicionar um repositório remoto $ git remote add origin https://github.com/…
  • 25. Git - Pull ● Traz as alterações dos colegas antes de inicarmos os trabalhos na máquina local $ git pull origin master
  • 26. Git - Push ● ENVIA as alterações da máquina local para o repositório remoto, unificando o projeto. $ git push origin master
  • 27. Roteiro ● Conceitos ● Config. Inicial ● Commit local ● Remote: pull/push ● Branch / Merge ● Exemplo em pendrive ● Extra - Comandos / Extensões VS Code ● Exemplos Práticos (comandos e VS Code).
  • 29. Git - Branch # cria o branch $ git branch teste # passa para o branch teste (sai do master) $ git checkout teste # cria o branch teste já fazendo o checkout $ git checkout -b teste
  • 30. Git - Branch # para sair do branch teste e voltar ao master $ git status # ou informar o que foi feito até o momento como "funcoes basicas" $ git commit -a -m "ponto de commit para poder voltar depois" $ git checkout master # depois, para voltar ao teste e continuar o trabalho $ git checkout teste
  • 31. Git - Branch # trazendo as alterações do branch de teste para o branch master (unifincando no master) # vai para o master $ git checkout master # traz as alteracoes de teste para master $ git merge teste
  • 32. Git - Branch # caso não precise mais trabalhar no branch teste, podemos apaga-lo $ git branch -d teste
  • 33. Git – Merge Um exemplo… # em caso de conflito ao fazer merge $ git checkout -b teste2 # cria novo merge e faz checkout nele ... alterar um arquivo em deteminadas linhas ... $ git commit -a -m "bug em x e y corrigido, agora com parametro $ID" ... enquanto isso, outro colega no branch master ... (git checkout master) ... altera o mesmo arquivo quase nas mesmas linhas ... $ git commit -a -m "bug em x e z corrigido, agora com verif. de $valor" ... quando voce tenta fazer merge (unificar) com master ... (git checkout master) $ git merge teste2 # ele faz o merge mas vai informar que há¡ conflitos ... no codigo fonte onde há conflitos, o git insere ambas as versoes das linhas com os devidos comentarios ... ... e voce edita diretamente no codigo fonte para deixar apenas a versao que vai ficar ... # commit dos arquivos já sem os conflitos (isto já no master, apos o merge) $ git commit -a -m "bug em x, y e z corrigido, agora com parametro $ID e verif. de $valor"
  • 34. Roteiro ● Conceitos ● Config. Inicial ● Commit local ● Remote: pull/push ● Branch / Merge ● Exemplo em pendrive ● Extra - Comandos / Extensões VS Code ● Exemplos Práticos (comandos e VS Code).
  • 35. Git – Repositório num pendrive
  • 36. Git – Repositório num pendrive # criando o repositório central numa pasta # pode ser em rede, local ou num pendrive $ cd nome_da_pasta $ git init --bare
  • 37. Git – Repositório num pendrive # a primeira máquina $ cd nome_da_pasta $ git init (fazer alterações) $ git remote add origin /caminho/ate/a/pasta $ git push origin master
  • 38. Git – Repositório num pendrive # as demais máquinas $ cd nome_da_pasta $ git init $ git remote add origin /caminho/ate/a/pasta $ git pull origin master (fazer alterações) $ git push origin master
  • 39. Git – Repositório num pendrive # forçando um Merge Na máquina A alterar linha N de um arquivo. Na máquina B alterar a mesma linha. Fazer push em ambas as máquinas.
  • 40. Roteiro ● Conceitos ● Config. Inicial ● Commit local ● Remote: pull/push ● Branch / Merge ● Exemplo em pendrive ● Extra - Comandos / Extensões VS Code ● Exemplos Práticos (comandos e VS Code).
  • 41. Git – Comandos e Extensões Comandos: status, remote, pull, push, clone, fetch, branch, checkout, merge, diff, log, … VS Code: Git History Git Lens
  • 42. Roteiro ● Conceitos ● Config. Inicial ● Commit local ● Remote: pull/push ● Branch / Merge ● Exemplo em pendrive ● Extra - Comandos / Extensões VS Code ● Exemplos Práticos (comandos e VS Code)
  • 43. Git – Exemplos práticos Ver comandos no arquivo extra em github.com/sandrocustodiobr/palestras VS Code, integrado na barra em Netbeans, botão direito.
  • 44. Sandro Custódio Tchelinux desde 2008 Servidor Publico Federal desde 1999 TI desde 1993 github.com/sandrocustodiobr/palestras