git

/github

/bitbucket

/gitlab

— por Luiz Lins, Prof

Pensamento

"Ô, minha gente!

Vocês já salvaram um arquivo assim?

 

projeto.py

projeto_novo.py

projeto_novo_AGORA_VAI.py

Projeto_novo_AGORA_VAI_SEM_BRINCADEIRA.py
 

...e aí, quando foi ver, tinha 17 versões do mesmo código, nenhuma funcionando direito, e ninguém sabia qual era a certa?

Agenda

  • Windows, Linux ou OSX;
  • Conhecimento básico de terminal ou prompot de comando;
  • Vontade de aprender.

Requisitos básicos

Cópias e mais cópias de um mesmo projeto

Meu Deus! Apaguei um arquivo importante e não tem como recuperar!

Controle de versão

O que é?

Sistema com finalidade de gerenciar diferentes versões de um documento.

Outros sistemas

Sistema git

História do git

Linux Torvalds

  • Velocidade;
  • Design simples;
  • Suporte robusto a desenvolvimento não linear (milhares de branches paralelos);
  • Totalmente distribuído;
  • Capaz de lidar eficientemente com grandes projetos como kernel do Linux;

Melhorias

O que é Github?

Serviço de Web compartilhado para projetos que utilizam o Git para versionamento.

Instalando

Configurar o git



git config --global user.name "Luiz Lins"


git config --global user.email "luizmagao@gmail.com"


git config --global core.editor vim

repositório

git init

Ciclo de vida

status dos arquivos



git status


git commit -m "Add Readme.md"

logs

git log



git log

git log --decorate

git log --author="Luiz"

git log shortlog -sn

git log --graph

git show <hash>

git diff

reset



git checkout <nome do arquivo>

git reset HEAD readme.md

git reset --soft --mixed --hard

Repositório

remoto

Ligando local

para remoto

Criando uma

chave ssh

branch

git branch -b <nome>

O que é brach?

É um pronteiro móvel que leva a um commit

Porque usar?

  • Poder modificar sem alterar o local principal (main/master);
  • Facilmente "desligável";
  • Múltiplas pessoas trabalhando;
  • Evita conflitos;

Vantagens


git checkout -b <name>

git branch

git switch <name>

git checkout -D <name>

Unido branch

Merge

Pro

  • Operação não destrutiva

Contra

  • Commit extra
  • Histórico poluído

Rebase

Pro

  • Evita commits extras
  • Histórico linear

Contra

  • Perde ordem cronológica

Versões

git tag -a 1.0.0 -m "<mensagem>"


git tag -a 1.0.0 -m "Readme finalizado"

git push origin master --tags

revert

git revert <commit>

Git&Github

By Luiz Lins

Git&Github

Aula sobre Git & Github Inicial

  • 9