Git e GitHub - Conceitos Básicos

25.565 visualizações

Publicada em

Apresentação Introdutoria dos conceitos do Git e GitHub, Criticas, Sugestoes e Observacoes, comentem! obrigado!

Publicada em: Tecnologia
5 comentários
41 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
25.565
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
580
Comentários
5
Gostaram
41
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Git e GitHub - Conceitos Básicos

  1. 1. Git e GitHub @hsilvest
  2. 2. O que é Git? "Git é um sistema de controle de versão distribuida, rápido e escalável" Traducão do ManualBasicamente é um versionador de arquivos, é utilizadoprincipalmente para gerenciar versões de softwares desenvolvidospor um ou mais desenvolvedores, com ele podemos implementarnovas funcionalidades e tudo é registrado em um histórico, o qualpodemos retroceder sempre que necessário, os integrantes de umprojeto podem enviar correções, atualizacões, etc. As alteraçõesenviadas para o projeto principal não comprometem o mesmopois cabe ao dono do projeto a inclusão ou não das alteraçõesefetuadas.
  3. 3. Um Pouco de História O git foi desenvolvido inicialmente por Linus Torvalds (Criador do Linux), pela necessidade de ter um software capaz de controlar a versão do kernel do linux. Mais informacões no link do projeto Git abaixo: http://git.or.cz/
  4. 4. TermosRepository: Local onde fica todos os arquivos doprojeto, inclusive os históricos e versões.Commit: Colecão de alteracões realizadas, é comose fosse um “checkpoint” do seu projeto, sempreque necessário vc pode retroceder ate algumcommit.
  5. 5. TermosBranch: É uma ramificacão do seu projeto, cada branchrepresenta uma versão do seu projeto, e podemos seguiruma linha de desenvolvimento a partir de cada branch.Fork: Basicamente é uma bifurcação, uma cópia de umprojeto existente para seguir em uma nova direção.Merge: É a capacidade de incorporar alterações do git,onde acontece uma junção dos branchs.
  6. 6. ComeçandoPrimeiro vamos criar um novo diretório eem seguida iniciar nosso repository git:mkdir NovoProjetocd NovoProjetogit init Todos os arquivos dentro do diretório NovoProjeto faz parte do nosso repository
  7. 7. ConfigurandoAgora vamos indicar as informações do desenvolvedor,fazemos isto para identificar os desenvolvedores em cadacommit específico:git config user.name “Henrique Silvestre”git config usar.email “hs.ccti@gmail.com”Nesse ponto já podemos ver que uma pasta “.git” foi criada, láficam os registros de todo o nosso projeto.
  8. 8. ExemplificandoVamos criar um arquivo vazio para exemplificarmos:touch exemplo.txtAgora informamos ao git que vamos adicionar o arquivo queacabamos de criar ao proximo commit:git add exemplo.txtMas se quisessemos que todos os arquivos fossemadicionados podiamos ter usado o seguinte comando:git add .
  9. 9. ExemplificandoO git é inteligente o suficiente para apenasrealizar commits se detectar alguma alteraçãonos arquivos que foram indicados pelo (git add),dessa forma o único commit que ele realiza semalguma alteração é o primeiro.
  10. 10. Nosso Primeiro Commit...git commit -a -m “Nosso primeiro commit”Passamos o parâmetro -a para informar quetodos os arquivos alterados devem serincluidos do commit.Passamos o paramêtro -m para adicionar umamensagem explicativa para o commit.
  11. 11. Comandos ÚteisDepois que fizemos nosso primeiro commit existem alguns comandosque podemos utilizar para verificar o mesmo, são eles:git log // listar todos os commits já realizados.git status // mostrar os arquivos alterados desde oúltimo commit.git show // mostrar as alterações realizadas noúltimo commit.
  12. 12. BranchsTodo novo repositorio git tem um branch defaultchamado “master”.Para listar todos nossos branchs:git branchSe vc não tiver mais branchs a saida será:*master
  13. 13. BranchsVamos criar um novo branch chamado “working” pegando comobase o branch corrente e vamos continuar no branch corrente:git branch workingAgora vamos criar um novo branch chamado“outro” como base o branch “working” e vamosnos manter no branch corrente:git branch outro working
  14. 14. BranchsComo já vimos, nosso repositório ja tem por default obranch “master” dessa forma quando falamos “branchcorrente” nos referimos ao branch que estamostrabalhando no momento. Se não criamos nenhumentão estaremos trabalhando no master.
  15. 15. BranchsPara criar um novo branch e automaticamentesairmos do branch corrente e irmos para onovo branch usamos o “checkout”:git checkout -b “outro”Por hora devemos ter os seguintes branchs:master*outro o branch sinalizado com “*” é o branch corrente.
  16. 16. BranchsMudando de branch corrente:git checkout masterAgora a saida fica assim:*masteroutroPara deletarmos um branch fazemos dessa maneira:branch -d outro
  17. 17. BranchsNão podemos deletar um branchcorrente, primeiro temos que mudar paraoutro branch e depois deletarmos o quedesejamos.
  18. 18. Exemplificando MergeDigamos que o arquivo exemplo.txt foi alterado nobranch “outro”.git checkout outro // alterando para o branch outro.git add . // indicamos todos os arquivos do commit.git commit -a -m “alteração exemplo.txt” // commit.
  19. 19. Exemplificando MergeAgora queremos que nossa alteração no exemplo.txtseja refletida a nossa branch master.Primeiro vamos para o branch que queremos asalterações refletidas:git checkout masterAgora realizamos o merge (mesclagem/fusão) dasalterações do branch outro para o current branch:git merge outro
  20. 20. Exemplificando MergeNão precisamos passar o branch master como parâmetro poisjá estamos nele através do:git checkout masterLembram?A saida deverá ser algo como isto:Updating 642caa9..851gb82Fast forwardexemplo.txt | 1 +1 files changed, 1 insertions(+), 0 deletions(-)
  21. 21. Exemplificando MergeConfirmando a alteração no arquivo:cat exemplo.txtNesse momento toda a alteração realizada nobranch “outro” sera refletida no branch masterinclusive nossos commits que fizemos no branchoutro e agora esta no master.
  22. 22. Exemplificando MergeTodo branch possui um branch pai, que é a basea partir de então, sabendo disso e seprecisassemos fazer um merge em um branchmaster que já tivesse alguma alteração depoisque o branch outro foi criado? Dessa forma obranch outro não estava refletindo a ultima versãode master, como proceder então?
  23. 23. Exemplificando MergeNesse caso a melhor forma seria o “rebase” ou seja pegaro ultimo commit do branch master, e trazer para o branchoutro e aplicar todos os seus commits nele, feito issoagora nosso branch outro está refletindo a ultima versãodo masterPoderiamos fazer o merge também, mas talvez poderiacausar conflitos e a última coisa que queremos sãoconflitos.
  24. 24. Exemplificando MergeEntão vamos fazer o rebase da branch outro para refletira ultima versão da branch master:git checkout outrogit rebase masterAgora podemos realizar o merge:git checkout mastergit merge outro
  25. 25. T o d o s o s a rq u iv o s q u e e s ta m o s tra b a lh a n d o e s ta o n e s s e e s tá g io A p ó s e fe tu a rm o s o a lte r a ç õ e s , im p le m e n ta c õ e s , e tc C o m m it o s a rq u iv o s In d ic a d o s v ã o p a r a o git add R e p o s ito r y WORKING STAGE REPOSITORY D e p o is q u e in d ic a r m o s q u a is git commit A r q u iv o s d e v e m s e r c o n s id e r a d o sP e lo c o m m it e n tr a m o s n e s te e s tá g io
  26. 26. Repositórios RemotosA idéia é a mesma de um repositório local, mas osremotos como o proprio nome diz, não estão nasua máquina, estão hospedados em servidores nainternet ou outra máquina qualquer.Existem vários sites que servem comorepositórios online, nesta apresentação usaremoso www.github.com pois é um dos melhores naminha opnião.
  27. 27. Repositórios RemotosA primeira coisa que precisamos é criar uma conta nogithub e em seguida configurar a chave ssh para queconsigamos nos comunicar com o github.Para auxilio na configuracao da ssh keys ou outraconfiguracao do github siga o passo-a-passo do próprio siteindicado abaixo:http://help.github.com/set-your-user-name-email-and-github-tok
  28. 28. Clonando um ProjetoPara criar um clone (cópia de todo o projeto,incluindo todos commits) devemos utilizar oseguinte comando:git clonehttps://github.com/MeuUsuario/MeuProjeto
  29. 29. Clonando um ProjetoLogo após poderemos ver que foi criado um diretório com onome do projeto e dentro dele a cópia do projetoVeja o repositório remotos disponível agora:cd MeuProjetogit branch –rorigin/HEADorigin/masterorigin/working
  30. 30. Clonando um ProjetoDevemos criar um branch local baseadoem algum branch remoto antes decomeçar a efetuarmos nossas alterações.git checkout –b outro origin/working
  31. 31. Clonando um ProjetoAgora vamos supor que nós efetuamos váriasalterações neste repositório e durante esse tempo oprojeto principal também foi alterado nãocorrespondendo mais a base que nós possuimosagora, e então desejamos sincronizar com a últimaversão disponível do projeto.
  32. 32. Clonando um ProjetoPrimeiramente recuperamos a versão recentedo projeto:git fetchAgora efetuamos o merge com o branch atual:git merge origin/master
  33. 33. ConclusãoEsta apresentação visa esclarecer osconceitos básicos do git e github, mas existeminfinidades de conceitos que podem serpesquisados mais profundamente, material nainternet não falta, espero ter ajudado a clarearalguns conceitos! Qualquer correção, ouobservações comentem.

×