Resumão de Versionamento de Codigo com GIT e GITHUB
Almejando uma transição de carreira, caí de cara no BootCamp do Santander sem saber um A sobre programação e afins.
Então juntei tudo de maneira bem "BeABa" pra quem tem pouquíssimo ou zero conhecimento, assim como eu.
Utilizo o Notion como ferramenta de estudo! Enjoy.
Ah! É meu primeiro artigo, então peguem leve e ajudem a colega iniciante.
O que é Versionamento de código?
Sistemas de controle de versão. Controlam as versões de um arquivo ao longo do tempo
- Registra o histórico de atualizações
- Gerencia quais foram as alterações (data, autor, etc)
- Organização, controle e segurança
Tipos de sistemas de controle de versão
- VCS Centralizado(CVCS) → Ex: CVS, Subversion (Desvantagem: Caso fique fora do ar, você não consegue salvar ou colaborar com alguma alteração. Se o arquivo for corrompido e não houver bkp apropriado vc perde o projeto.
- VCS Distribuído (DVCS) → EX: Git, Mercurial - Banco de versão é duplicado localmente, onde cada clone funciona como um backup, possibilitando um fluxo de trabalho flexível, inclusive sem acesso a rede
→ comandos:
- git config (Para configurar) ——— IMPORTANTE: Permite visualizar e definir variáveis de configuração
- git config —global user.name
- git config —global user.email
- git config init.defaultBranch : define o nome da branch padrão ao inicializar um novo repositório.
- git config --global --show-origin - Encontrar onde estão os arquivos salvos
- Seta para cima | copia o comando digitado anteriormente
- Ctrl + L = Limpa o terminal
→ Variáveis ficam armazenadas principalmente em três lugares:
- Global (configurações no usuário)
- System (configurações no sistema)
- local (referente a configuração de repositório especifico )
IMPORTANTE: O Git não depende de plataformas como o GIT Hub para fazer o versionamento. Porem no caso de estudo, vamos conectar com a conta no git hub para pegar os repositórios locais e armazenar de maneira remota. Isso serve para facilitar o acesso a esse repositório e para compartilhar com outras pessoas ou possibilitando a colaboração
Atualmente o processo de autenticação não é mais por usuário e senha.
Autenticação por token ou por chaves SSH
Criar token no github
ATENÇÃO: Uma vez criado o token, é necessário copiar o código gerado, pois quando sair da pagina não será possível acessa-lo novamente no github
Criando e clonando repositórios: 1 - Transformando um diretório local que não esta sob controle de versão, num repositório Git utilizando o comando Git Init 2 - Clonando repositório Git Existente
→ Mais Comandos
mkdir - criar diretório
CD - acessar diretório
Git Init - transforma o diretório num repositório Git vazio (Ele cria uma pasta oculta [.git] *****todas pastas ocultas ficam com .****)
LS - Lista o que tem dentro da pasta
Cat Config - exibir conteúdo de configuração
git remote add origin URL - para conectar o repositório local (pasta no computador) ao Repositório remoto (é o que esta na plataforma (por exemplo git hub)) —— git clone URL nome-do-diretório-local
O comando git branch permite criar, listar, renomear e excluir ramificações. Ele não permite alternar entre as ramificações ou reunir um histórico bifurcado de novo. Por esse motivo, o comando git branch é muito integrado com os comandos git checkout e git merge .
Salvando Alterações no Repositório Local
Git Status
touch readme.md (Touch inclui arquivo)
Git Commit
echo resumos/ > .gitignore (os arquivos dentro do diretório serão ignorados)
.gitkeep - cria um arquivo dentro do diretório apenas para que o diretório ‘vazio’ seja reconhecido no git status
git add . adiciona os arquivos para área de preparação
git log mostra o histórico dos commit e com autor nome e email das configurações
echo "#commit-3-branch-teste" > commit-3-branch-teste.txt
O Markdown é uma linguagem fácil de ler e de gravar para formatar texto sem formatação. Você pode usar a sintaxe Markdown, juntamente com algumas tags HTML adicionais, para formatar a escrita no GitHub, em locais como LEIAMEs do repositório e comentários sobre solicitações de pull e problemas. Neste guia, você aprenderá alguns recursos avançados de formatação criando ou editando um LEIAME do seu perfil do GitHub.
Desfazendo Alterações no Repositório Local
rm -rf .git - remove recursivamente e a força o diretório git e seu conteúdo
git restore - restaura antes da alteração (descarta TODAS alterações feitas localmente
git commit —amend altera msg do ultimo commit
git reset —soft (cola o rest do commit) - pega os ultimos arquivos
git reset — mixed
git reses —hard (ignora totalmente os arquivos)
git reflog - um log mais detalhado
Enviando Alterações para Repositório Remoto
git push - envia alterações do repositorio local para repositorio remoto (-u → Config a branch main como a branch up stream
…or push an existing repository from the command line
git remote add origin <https://github.com/KellyMartins0406/dio-Git-e-github-resumos.git>
git branch -M main --- Força a troca de 'master' para 'main'
git push -u origin main ------ envia alterações do repositorio local para repositorio remoto (-u → Config a branch main como a branch up stream
Enviando Alterações para Repositório Local
git pull - “Puxar” as alterações do repositório remoto para o local (busca e mescla).
Trabalhando com Branches
- De maneira simplista, uma Branch (em tradução, “Ramo”), é uma ramificação do seu projeto. É um ponteiro móvel para um commit no histórico do repositório; Quando você cria uma nova Branch a partir de outra existente, a nova se inicia apontando para o mesmo commit da Branch que estava quando foi criada.
Trabalhando com Branches
→Mais comandinhos
git checkout -b nova-branch - Trocar de Branch e criar uma nova: git branch –d nome-da-branch - Deletar uma Branch git branch -v - Ver o último commit de cada Branch:
git checkout + nome da branch, vai para branch
git merge + nome da branch - mescla as branch atual + aquela que quer mesclarr
git fetch origin main - baixa alterações branch remota
git diff main origin main -
Clonar repositório que tenha varias branchs (clonar somente uma branch)
git clone url xxxxxx —nome da branch — single-branch