Folder do Curso

Curso de Versionamento com Git e GitHub

Iniciamos 2021 ministrando um curso de Versionamento com Git e GitHub em que as vagas se esgotaram rapidamente.

A ideia é disseminar conhecimento sobre o Git e com isso diminuir a prática de armazenar código no pendrive e usar aquele velho método de criar versões no nome do arquivo ( projeto.zip, projeto20210101.zip, projeto.bkp, projeto.old etc). Afee!!!

Vamos parar de compartilhar os códigos por email enviando zip para lá e para cá. Depois do segundo email, ninguém mais sabe qual a última versão.

Preparei um material bem legal, desde a introdução ao uso do controle de versão. Como sou ‘dinodev’ contei a história do CVS e da tartaruguinha (tortoise), do SVN (Subversion), que são controles de versão centralizados, e da revolução que foi o Git, um controle de versão distribuído.

Vale a pena assistir o lendário Tech Talk: Linus Torvalds on git, onde Linus conta que levou 2 semanas para desenvolver o Git por conta de um insatisfação com o BitKeeper:

“The end result was I decided I can write something better than anything out there in two weeks, and I was right.” Tech Talk: Linus Torvalds on git

Moral da história:

Nunca desafie um programador motivado!

Depois de apresentar de forma conceitual o git por dentro, partimos para prática, com uso do console (Linux ou Mac) ou gitbash (Windows), desde a instalação.

Alinhamos o vocabulário:

  • Sistema de Controle de Versão (SCM)
  • Commit
  • Repositório (repo)
  • Working Directory (Diretório de trabalho)
  • Checkout
  • Staging Area / Staging Index / Index
  • SHA (Secure Hash Algorithm)
  • Branch

Criamos a pasta, inicializamos o repositório local (git init), examinamos a pasta oculta .git, clonamos (git clone) um repositório remoto e comparamos utilizando git status, git show, git diff e o git log e suas variações.

Trabalhamos com os principais comandos básicos para versionar como: git add e git commit. Criamos branchs (git branch), tags (git tag) e alternamos entre os branchs e tags (git checkout). Criamos cenários para combinar branchs (git merge):

  • Fast-forward merge
  • Regular merge
  • Fail Merge

Podemos também desfazer ou corrigir problemas com os commits usando:

  • git commit –amend
  • git revert
  • git reset.

Trabalhamos com o github e seus repositórios remotos sincronizando nosso repositório local com o github usando o git remote, git push e o git pull.

Sabemos que foram muitas informaões em um curto espaço de tempo, mas fiquei muito feliz com resultado e com todos os feedbacks.

Agradeço a todos que participaram.

Espero vocês nos próximos eventos.

Easter Egg = 02/02/2021