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
pwd
Alterar 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)
cd ~
Lista o conteúdo do diretório atual
ls
Lista o conteúdo do diretório atual incluindo ocultos
ls -a
Limpa a tela do terminal
clear
Mostra os últimos comandos executados
history
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.
git init
CLONE
O comando git clone
baixa um repositório já criado remotamente (github, gitlab, bitbucket)
git clone <repositorio-remoto>
STATUS
Lista arquivos modificados no working diretory
ou arquivos adicionados em staging area
que não tenham sido persistidos no repositório.
git status
DIFF
Mostra as diferenças entre os arquivos do working diretory
e o repositório.
git diff
ADD
Adiciona arquivos/diretórios na staging area
# git add <variações>
git add . # adiciona todas as alterações da pasta atual
git add arquivo.md # adiciona somente o arquivo.md
git add arquivo.md arquivo2.md # adiciona os dois arquivos indicados
git add pasta_x # adiciona um diretório (pasta_x) inteiro incluindo as modificações dentro dele
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)
git commit -m "mensagem"
PULL
Baixa as modificações do repositório remoto (origin
) e ramificação principal (main
).
# git pull <remoto> <branch>
git pull origin main
PUSH
Envia as modificações (commits) do repositório local para o repositório remoto (origin
) e ramificação principal (main
).
#git push <remoto> <branch>
git push origin main
LOG
Mostra o hitórico de commits do repositório local.
git log
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).
Last updated