Síntese - Introdução ao Git [Curso-DIO]
- #Git
Sistema distribuído ~ possui múltiplas cópias de si mesmo em diferentes locais
- Qualquer alteração em um blob refletirá nos sha1 dos blobs, trees e commit (sha1 do commit ≠, estado do programa ≠)
Estados - git:
- Staged: arquivos que estão no backstage se preparando para fazer parte de um commit (um arquivo Untracked ou Modified que sofre git add é movido para a área de Staging)
- Modified: mudou o sha1
- Unmodified: aguardando novas modificações (um arquivo Unmodified que é removido se torna Untracked)
- Untracked: arquivo de que o git não tem ciência
git init (cria a pasta .git + cria/inicializa um repositório git na pasta)
git config --global user.email seuemail@dominio.com
git config --global user.name seuUsuario
git config --list (lista as configurações atuais - credenciais, etc)
git add * (move *todos* os arquivos Untracked/Modified direto para Staged [aguardando para entrar em ação/fazer parte de um commit])
- git add nomeArquivo (adiciona o arquivo)
- git add * / git add (adiciona todas as modificações do repositório local para a Staging area).
git commit -m “msg” (envelopa todas as modificações em uma mensagem, dando significância a elas [escreve uma mensagem que carrega um autor/data] + retorna todos os arquivos para Unmodified p/ recomeçar o ciclo [cria um snapshot do código no momento em que as alterações foram concluídas que fica salvo no commit])
- O commit faz duas coisas, portanto: (1) popular o seu repositório local (que é composto por arquivos commitados) e (2) fazer com que os arquivos que estavam na área de Staging entrem em cena (voltam para Unmodified, retomam o ciclo)
Empurrando a versão do repositório local para um remoto:
git remote add origin git@github.com:... (p/ onde serão enviados os arquivos)
git remote -v (lista os repositórios remotos para os quais o repositório local está apontando)
git branch -M master
git push -u origin master / git push origin main (envia todos os commits que você tem localmente à nuvem)
Puxar repositório remoto (para integrar alterações remotas):
git pull
Baixar repositório remoto:
git clone (cria um clone do repositório remoto no repositório local - já vem com uma pasta .git contendo todo o versionamento de código + para onde o repositório está apontado [“origin”])
ls -a (mostra repositórios ocultos)
Ambiente de desenvolvimento (tudo o que está na minha máquina):
- Working directory: diretório em que são criados/manipulados os arquivos
- Staging area: arquivo que sofreu git add
- Local repository: repositório que pode ser empurrado para um repositório remoto (arquivos que sofrem commit passam a integrar o repositório local); arquivos não commitados não podem ser enviados para um repositório remoto.
Servidor (versão do código que está no servidor):
- Remote repository