Git
O Git é um software para controle de versão de arquivos muito utilizado em desenvolvimento de sistemas. Rastreia e administra as alterações realizadas no código fonte do software, ou seja, ele salva todas e qualquer mudança realizada no texto, sejam adições de linhas, exclusões, com histórico atrelado ao usuário que fez essas alterações.
O controle de versão mantém esse histórico guardado, facilitando voltar para algum "estado anterior" caso alguma alteração cause problemas.
GitHub
O GitHub é uma plataforma de hospedagem de código-fonte e arquivos com controle de versão usando o Git.
Funciona como um drive, um local para salvar seus códigos online e compartilhar com mais pessoas que poderão trabalhar também. Assim, várias pessoas conseguem trabalhar juntas em um projeto e acompanhar as alterações que outras pessoas fizeram, mantendo o projeto sempre atualizado.
Bash / GitBash
Bash é um interpretador de comandos, um entre os diversos tradutores entre o usuário e o sistema operacional conhecidos como shell.
Para quem está utilizando o sistema operacional Windows, recomendamos usar o GitBash para que possa ter disponíveis os comandos Git e outros comandos mais conhecidos em sistemas operacionais Unix (MacOS e distribuições Linux)
Vamos conhecer alguns comandos básicos:
Como identificar o diretório atual
pwdAlterar a localização para o diretório informado
cd <diretório>Alterar a localização para o diretório superior
cd ..Muda a localização para a pasta Home (pasta inicial do usuário)
Lista o conteúdo do diretório atual
Lista o conteúdo do diretório atual incluindo ocultos
Limpa a tela do terminal
Mostra os últimos comandos executados
Repositórios Remoto x Local
Remoto
Repositório remoto é o repositório que você pode compartilhar seu código com outras pessoas. Exemplos de plataformas onde ele pode estar hospedado: GitHub, GitLab, BitBucket.
Local
Repositório local é que está na sua máquina.
Staging Area é um espaço temporário onde você determina quais mudanças serão adicionadas.
Finalmente o diretório de trabalho, onde o git disponibiliza uma cópia dos arquivos para que você possa fazer as modificações.
Veja abaixo uma representação do que acabamos de falar:

Veremos alguns comandos básicos:
INIT
Para iniciar um novo repositório local utilizando o comando git init. Caso seja necessário vincular a um repositório remoto é possível configuração de REMOTE em outro momento.
CLONE
O comando git clone baixa um repositório já criado remotamente (github, gitlab, bitbucket)
STATUS
Lista arquivos modificados no working diretory ou arquivos adicionados em staging area que não tenham sido persistidos no repositório.
DIFF
Mostra as diferenças entre os arquivos do working diretory e o repositório.
ADD
Adiciona arquivos/diretórios na staging area
COMMIT
Cria um commit enviando (persistindo) ao repositório local. Um commit, ou "revisão", é uma mudança individual em um arquivo (ou conjunto de arquivos)
PULL
Baixa as modificações do repositório remoto (origin) e ramificação principal (main).
PUSH
Envia as modificações (commits) do repositório local para o repositório remoto (origin) e ramificação principal (main).
LOG
Mostra o hitórico de commits do repositório local.
Branch
Ramificação da base do código. Não vamos aprofundar neste curso a utilização de ramificações, por isso vamos sempre utilizar a ramificação main (principal).
Dicas de conteúdos extras sobre Git
Folha de dicas de GIT: versão Web versão PDF
Para ampliar seu conhecimento em GIT, recomendamos esse curso gratuito.
Veja ainda este site (em inglês) que te ajuda a encontrar comandos: Git Command Explorer
E quando acontecem coisas não muito agradáveis no caminho, você pode ver algumas soluções no Oh Shit, Git!?!
Last updated