Curso oferecido pela plataforma DIO e apresentado por @elidianaandrade.
Repositório de referência.
- O que é Versionamento de Código ?
- O que é Git ?
- O que é GitHub ?
- 2FA - Autenticação de 2 Fatores
- Configurações do Git
- Autenticando via Token
- Autenticando via Chave SSH
- Criando e Clonando Repositórios
- Markdown
- Desfazendo alterações no Repositório Local
- Repositório Remoto - Enviando e baixando alterações
- Branches
- Outros comandos
- Dicas e materiais de apoio
O versionamento de código é usado durante a construção de uma aplicação tecnológica, onde novas correções e implementações são criadas diariamente. Por isso é necessário trabalhar com o auxílio de ferramentas que ajudam no registro dessas modificações, indicando quem fez a mudança, quando e o que foi alterado.
Git é um sistema de controle de versões distribuído, usado principalmente no desenvolvimento de software, mas pode ser usado para registrar o histórico de edições de qualquer tipo de arquivo. É um projeto de código aberto maduro e com manutenção ativa desenvolvido em 2005 por Linus Torvalds, o famoso criador do kernel do sistema operacional Linux. Um número impressionante de projetos de software depende do Git para controle de versão, incluindo projetos comerciais e de código-fonte aberto.
GitHub é uma plataforma de hospedagem de código-fonte e arquivos com controle de versão usando o Git. Ele permite que programadores, utilitários ou qualquer usuário cadastrado na plataforma contribuam em projetos privados e/ou Open Source de qualquer lugar do mundo.
Camada de segurança adicional contendo 2 etapas, sua senha e uma etapa adicional com base no que foi configurado/escolhido.
página do GitHub > Canto superior direito (avatar) > Settings > Password and authentication > Enable two-factor authentication >
Usar pelo celular um aplicativo de autenticação (Microsoft Authenticator ou outro) para ler o QRCode e adicionar o GitHub nesse aplicativo
.
Na mesma tela do QRCode, aparece algo como
enter this text code
, para adicionar o número de uma operadora celular na autenticação de 2 etapas, para ter a 2ª etapa como código enviado por SMS (mensagem de texto).
$ git config
$ git config --global user.name "seu nome"
$ git config --global user.email "seu email"
$ git config user.name
$ git config user.email
$ git config --global init.defaultBranch novo_nome
$ git config init.defaultBranch
$ git config --global --list
Token de segurança do GitHub para ser usado como uma senha de autenticação.
página do GitHub > Canto superior direito (avatar) > Settings > Developer settings > Personal access tokens > Tokens (classic) > Generate new token > Generate new token (classic) >
Configure o token
:
- Note - descrição do token;
- Expiration - tempo que o tempo vai expirar;
- Select Scopes - selecionar as permissões do token;
Generate token >
Copie o token e salve essa informação, pois esse código só é visto uma vez
$ git config --global credential.helper store
$ git config --global credential.helper
$ git config --global --show-origin credential.helper
Protocolo de rede onde a máquina local e o GitHub se conectem de forma segura e criptografada.
$ ls -al ~/.ssh
$ ssh-keygen -t ed25519 -C "your_email@example.com"
Depois no terminal, aparece para digitar o caminho onde será salva a chave, caso queira usar o padrão, deixe em branco e aperte
ENTER
.
Depois ele pede uma passphrase, ou seja, uma senha. Informe a senha e confirme.
$ eval "$(ssh-agent -s)"
// starta o ssh-agente e retorna um pid.
$ ssh-add ~/.ssh/id_ed25519
// para adicionar a chave privada ao ssh agent, nesse passo é requerido o passphrase, onde caso sucesso uma mensagem de confirmação aparece.
página do GitHub > Canto superior direito (avatar) > Settings > SSH and GPG keys > New SSH key >
preencher o Title com um título, Key type como Authentication Key e em Key, é necessário colar a chave pública
.
$ cat ~/.ssh/id_ed25519.pub
// exibe a chave pública para colar no campoKey
.
$ git init
Entre na página do repositório
> Code >Copie a url
$ git clone url_copiado
//ou...
$ git clone url_copiado nome_pasta
// Caso deseje alterar o nome da pasta no repositório local.
Entre na página do repositório
> Code >Copie a url
$ git remote add origin url_repositorio_remoto
$ git clone url -- branch nome_branch --single-branch
git status
$ git add .
// para adicionar todas as alterações
$ git add arquivo_tal
// para adicionar apenas uma alterações específica
$ git commit -m "mensagem do commit"
$ git log
$ echo nome_pasta/ > .gitignore
$ touch nome_pasta/.gitkeep
Linguagem de marcação, como HTML, bastante usada em arquivos README.md do GitHub, que são arquivos de apresentações e afins.
Existem diversos sites de visualização de arquivos markdown, como vários tutoriais também, inclusive na documentação do GitHub.
$ rm -rf .git
$ git restore nome_arquivo
$ git commit -amend -m "mensagem de correção"
$ git reset --soft codigo_commit
// desfaz e adiciona os arquivos em stage-area (adicionados para commitar).
$ git reset --mixed codigo_commit
// o --mixed é opcional, desfaz e adiciona os arquivos em untracked (arquivos não adicionados).
$ git reset --hard codigo_commit
// ignora todos os arquivos e vai para o estado de determinado commit.
$ git reflog
$ git reset nome_arquivo
// ou...
$ git restore --staged nome_arquivo
$ git add origin url_repo_github
$ git branch -M main
$ git push -u origin main
$ git pull
Ramificações de uma outra branch, normalmente a main ou master, que tem como objetivo acumular commits afim de evitar conflitos em cada envio, sendo necessário apenas uma resolução de conflitos, que é quando une essa ramificação pararela a outra.
$ git checkout -b nome_nova_branch
$ git branch
$ git checkout nome_branch
$ git branch -v
$ git merge nome_branch_mergear
$ git branch -d nome_branch_excluir
$ git fetch
$ git diff branch_1 branch_2
$ git merge branch_remota
$ git clone url_projeto_github --branch nome_branch --single-branch
$ git stash
$ git stash list
$ git stash apply
$ git stash pop
- Repositório da autora do curso - PT-BR
- Site Oficial do Git - EN
- Documentação Oficial do GitHub - PT-BR
- Blog Oficial do GitHub - EN
- Artigo Autenticação com Token - EN
- Artigo Acidente DDoS - EN
- Artigo Venda do GitHub - EN
- Artigo 2FA - EN
- Palestra Linus Torvalds sobre Git - EN
- Livro Oficial Pro Git v.2 - EN