hugoszd.github.io
Open in
urlscan Pro
2606:50c0:8001::153
Public Scan
URL:
https://hugoszd.github.io/resumogit-hub/
Submission: On August 24 via api from US — Scanned from US
Submission: On August 24 via api from US — Scanned from US
Form analysis
0 forms found in the DOMText Content
RESUMO GIT E GITHUB Resumo compilado das aulas de GIT e GITHUB da DIO e StartSe O FORMATO USARÁ O RESUMO DAS AULAS DA STARTSE, PORÉM COMO A DIO ABORDOU QUESTÕES IMPORTANTES DE SEGURANÇA, ENTÃO ESSE CONTEÚDO SERÁ ACRESCENTADO. STARTSE AULA 1 INTRODUÇÃO * PDF 1-modulo-vi-introducao-ao-git.pdf https://drive.google.com/file/d/1nlUJXoRw4wEMEw1ofrxKlwhG_MOlKNVG/view?usp=drivesdk * Principais controladores de versão Apache Subversion "Enterprise-class centralized version control for the masses" Welcome to subversion.apache.org, the online home of the Apache® Subversion® software project. Subversion is an open source version control system. Founded in 2000 by CollabNet, Inc., the Subversion project and software have seen incredible success over the past decade. https://subversion.apache.org/ Mercurial SCM Mercurial is a free, distributed source control management tool. It efficiently handles projects of any size and offers an easy and intuitive interface. It is fast and powerful Mercurial efficiently handles projects of any size and kind. Every clone contains the whole project history, so most actions are local, fast and convenient. https://www.mercurial-scm.org/ CONTROLE DE VERSÃO * Nos dá uma linha do tempo do projeto (Timeline). * Trabalha com alteração de estados do arquivo. * Cada estado, chamamos de snapshot. * Cada mudança realizada em um arquivo aumenta a sua versão. * Podemos ter modificações paralelas. * Possibilita recuperação para qualquer estado anterior. * Podemos comparar documentos com características diferentes. * Exemplo de linha do tempo -------------------------------------------------------------------------------- AULA 2 CONFIGURAÇÃO DO AMBIENTE * Instalação e documentação : Documentation The entire Pro Git book written by Scott Chacon and Ben Straub is available to read online for free. Dead tree versions are available on Amazon.com. https://git-scm.com/doc Downloads Git comes with built-in GUI tools ( git-gui, gitk), but there are several third-party tools for users looking for a platform-specific experience. View GUI Clients → Various Git logos in PNG (bitmap) and EPS (vector) formats are available for use in online and print projects. https://git-scm.com/downloads GitHub Desktop Checkout branches with pull requests and view CI statuses See all open pull requests for your repositories and check them out as if they were a local branch, even if they're from upstream branches or forks. See which pull requests pass commit status checks, too! https://desktop.github.com/ * PDF e material 2-modulo-vi-configuracao-do-ambiente.pdf https://drive.google.com/file/d/1W1qSXrOLw46RYU6JJZ9kr3PMjMEw8uUj/view?usp=drivesdk 2-tutorial-instalacao-gitbash-no-windows.docx https://docs.google.com/document/d/1hYS2fetQr8bNLBGGuzCiNo0dSoPnzn49/edit?usp=drivesdk&ouid=110778513751742556754&rtpof=true&sd=true PARA VER SE O GIT ESTÁ INSTALADO E A VERSÃO: git version VAMOS REALIZAR A CONFIGURAÇÃO DO GIT BASH #Vamos abrir o git bash #Para configurar o nosso nome: git config --global user.name "Hugo" #Para configurar o email: git config --global user.email "hugodiscord@outlook.com" #Por configurar a branch git config --global init.defaultBranch main #OBS #->Para saber se as configurações estão setadas use: git config --list APÓS ABRIR O DIRETÓRIO QUE QUEREMOS, VAMOS CONTROLAR A VERSÃO COM GIT #O comando para iniciar o git a partir do diretório é: git init -------------------------------------------------------------------------------- AULA 3 AULA CICLO DE VIDA DOS ARQUIVOS, COMMITS E BRANCHES * PDF 3-modulo-vi-ciclo-de-vida-dos-arquivos-commits-e-branches.pdf https://drive.google.com/file/d/1EYzO0aVLmWLNEKp1AsH1e06slN20HXlo/view?usp=drivesdk GIT POSSUI 4 STATUS (CICLOS) PARA ARQUIVOS 1. Untracked → O git não conhece a existência do arquivo em nenhuma versão (Default). 2. Staged → Arquivos que estão prontos para serem inseridos em um novo estado da aplicação (Novo Snapshot). 3. Unmodified → Indica arquivo que não sofreu nenhuma modificação em relação a ultima versão. 4. Modified → Indica arquivos que sofreram alteração em relação a ultima versão. COMANDO PARA VER O STATUS DOS ARQUIVOS #Num primeiro momento todos os arquivos estarão como untraked git status COMANDO PARA ADICIONAR O ARQUIVO PARA ESTADO 2 STAGED #Para subir arquivo especifico: git add nome_do_arquivo #Caso a intenção seja adicionar todos, vamos usar o * git add * #OBS #Podemos voltar o arquivo para o estado anterior com: git reset nome_do_arquivo COMANDO PARA ADICIONAR PARA O ESTADO 3 UNMODIFIED #Vamos fazer um comentario indicando a mudança realizada com: git commit -m "comentario_entre_as_aspas" PARA VERIFICAR OS COMMITS REALIZADOS NO NOSSO CÓDIGO VAMOS USAR: #Comando para verificar quantidade de commits e as branchs utilizadas. git log BRANCH * Gera ramificações do fluxo principal de trabalho. * As ramificações geradas podem ser trabalhadas isoladamente. * Após modificações faremos um merge para associar a linha do tempo principal. * Exemplo PARA CRIAR NOVA BRANCH: git branch nome_da_branch PARA ALTERAR A NOSSA BRANCH DE TRABALHO USAREMOS git checkout nome_da_branch Para associar o trabalho da branch que criamos a linha do tempo principal usamos: git merge nome_da_branch -------------------------------------------------------------------------------- AULA 4 BRANCHES NA PRÁTICA * PDF 4-modulo-vi-branches-na-pratica.pdf https://drive.google.com/file/d/1IwPBK3wmF0OdjEBemn5IBfwg3D1MzMal/view?usp=drivesdk OBSERVAÇÕES: * Quando criamos uma branch o projeto será salvo na posição que estamos. * Todas as modificações geradas numa branch são ignoradas por outras. PARA SABERMOS EM QUAL BRANCH ESTAMOS USAMOS : #Esse comando vai mostrar a branch que estamos trabalhando. #Também demostra todas as oturas banchs criadas no projeto. git branch PARA SUBIRMOS A MODIFICAÇÃO DA BRANCH PARA A PRINCIPAL VAMOS USAR: git merge Nome_da_branch #OBS: #Quando fazermos um merge o git gera um commit automático informando a mudança. #O commit será aberto no editor de texto para editarmos. #Caso a nossa mudança impact alguma funcionalidade, o git irá nos informar. #Em caso de impacto, teremos a opção de escolher o que será mantido/descartado. PARA DELETAR UMA BRANCH VAMOS USAR: git branch -d nome_da_branch #OBS #Geralmente depois de cumprida a finalidade, deletamos a branch #Geralmente não fazemos commits da branch main diretamente. -------------------------------------------------------------------------------- AULA 5 RESET E DIFF NA PRÁTICA * PDF 5-modulo-vi-reset-na-pratica.pdf https://drive.google.com/file/d/1wtUUKWh5vzOuEV0Ca5xMOwRUhe9ftzwz/view?usp=drivesdk DIFF * Vai mostrar a diferença entre o arquivo atual e o estado anterior. 💡 OBS: Lembrando que o comando funciona em arquivos em staged (Quando foi feito o “git add”). PARA VERMOS A DIFF ENTRE ARQUIVOS USAMOS: #Nesse caso vamos ver todas as diferenças realizadas (Multiplos arquivos). git diff #Neste outro caso vamos ver as modificações de apenas um arquivo. git diff nome_do_arquivo PARA VOLTARMOS AO ESTADO ANTERIOR A MODIFICAÇÃO VAMOS USAR: #Iremos indicar o nome do arquivo para voltarmos ao ponto anterior a mudança. git checkout nome_do_arquivo RESET * Usado para voltar para o estagio anterior * Pode ser usado de forma diferente dependendo do estado do arquivo. USO DO RESET NA FASE “STAGED” (DEPOIS DO “GIT ADD”) #Caso tenhamos deixado passar mudança para staged vamos ter de resetar o estado #O comando para reset para estado anterior é: git reset nome_do_arquivogit reset nome_do_arquivo USO DO RESET NA FASE “UNMODIFIED” (DEPOIS DO “GIT COMMIT”) 💡 OBS: 1° - Termos que copiar o id do commit anterior antes de realizar o reset. #Vamos pegar o id do commit anterior com: git log #Depois de aparecer todos os IDs, vamos copiar o que queremos voltar. > Aqui vamos ter 3 formas diferentes de reset: > * Reset soft (Podemos fazer commit novo) > > #Volta po arquivo para fase de staged > git reset --soft nome_do_commit_anterior > > * Reset mixed (Podemos fazer novo git add) > > #Volta o arquivo para fase de modified > git reset --mixed nome_do_commit_anterior > > #Podemos fazer a diff da modificação com o conteúdo anterior > #Antes de fazer o "git add" > > * Reset hard (Desfaz tudo e volta ao estado do commit anterior) > > #Vai desfazer qualquer mudança realizada desde o commit anterior. > git reset --hard nome_do_commit_anterior -------------------------------------------------------------------------------- AULA 6 GITHUB, GITLAB E BITBUCKET * PDF 6-modulo-vi-github-gitlab-e-bitbucket.pdf https://drive.google.com/file/d/10AR0yT12jvO2YmZ9GE6UhcUIJTenK4LH/view?usp=drivesdk * Páginas úteis GitHub: Where the world builds software GitHub is where over 83 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and features, power your CI/CD and DevOps workflows, and secure code before you commit it. https://github.com/ The One DevOps Platform | GitLab Keep everyone synchronized with powerful planning tools, regardless of your process. Whether your methodology is Waterfall or DevOps, GitLab's simple and flexible approach to planning helps you stay organized and track progress. Now you can ensure teams are working on the right things at the right time, and maintain end-to-end visibility and traceability of issues throughout the delivery lifecycle - from idea to production. https://about.gitlab.com/ Bitbucket | Git solution for teams using Jira Bitbucket Cloud is a Git-based code and CI/CD tool optimized for teams using Jira. https://bitbucket.org/ PODEMOS MANDAR NOSSAS MODIFICAÇÕES LOCAIS PARA UM REPOSITÓRIO NA NUVEM -------------------------------------------------------------------------------- AULA 7 GITHUB NA PRÁTICA * PDF 7-modulo-vi-github-na-pratica.pdf https://drive.google.com/file/d/1VWxp8-GlCassn-aSm-PjmYybUdwlPNrI/view?usp=drivesdk AQUI VAMOS CRIAR UM REPOSITÓRIO NO GITHUB PARA TRABALHARMOS COM O PROJETO NA NUVEM. * Pegando o código do repositório da nuvem: * Inserindo o código no repositório local PARA CONFERIR SE INSERIMOS CORRETAMENTE O REPOSITÓRIO #Para apenas ver os repositórios remotos adicionados usamos: git remote #Para verificar o caminho dos repositórios adicionados vamos usar: git remote -v AGORA VAMOS ENVIAR NOSSOS ARQUIVOS LOCAIS PARA O REPOSITÓRIO GITHUB #Vamos usar o comando abaixo: git push nome_do caminho branch_que_queremos_mandar #No nosso caso fica: git push origin main #OBS #Temos a opção de salvar o caminho automaticamente git push -u origin main #Após salvar, apenas com o push já enviaremos os arquivos automáticamente. CASO A GENTE QUEIRA PEGAR OS ARQUIVOS DO PROJETO DA NUVEM #Lembrando que temos que pegar a URL do projeto na guia "code" no GitHub. git clone url_do_projeto #Todos os commits e branchs irão ser carregados também. -------------------------------------------------------------------------------- AULA 8 PULL E PUSH NA PRÁTICA * PDF 8-modulo-vi-pull-e-push-na-pratica.pdf https://drive.google.com/file/d/1eSbxkXNNrp5a1pCP7P4MTHcwlO9ZrLdm/view?usp=drivesdk GIT PUSH * Usado para enviar arquivos para o repositório do projeto #Relembrando a forma de subir os arquivos git push caminho_do_repositório branc_que_queremos_mandar GIT PULL * Usado para pegar atualizações feitas no projeto (de todas as branches) #Para pegarmos atualizações futuras feitas no código vamos usar o pull git pull caminho_do_repositório branc_que_vamos_receber #Vamos receber as alterações, todas as branchs e commits feitos no repositório. -------------------------------------------------------------------------------- AULA 9 GIT MERGE E REBASE * PDF 9-modulo-vi-git-merge-e-rebase.pdf https://drive.google.com/file/d/1SL3-yZsMJDE4W9CQ3HLcMtaSBQ6bAsJV/view?usp=drivesdk OBSERVAÇÃO: Merge e rebase são usados para unir branches MERGE * Adiciona novo commit na time line principal indicando a junção das branches * Gera fork do merge pra frente. * Visualização REBASE * Deixa a linha do tempo linear. * Vai gerar impacto a linhas de tempo alternativas * Visualização -------------------------------------------------------------------------------- AULA 10 MERGE E REBASE NA PRÁTICA * PDF 10-modulo-vi-merge-e-rebase-na-pratica.pdf https://drive.google.com/file/d/1IWuOX40yMFILJy_siwGxP2whXzD86k2l/view?usp=drivesdk * Extensão para ver git log no vscode Git History - Visual Studio Marketplace View and search git log along with the graph and details. View a previous copy of the file. View and search the history View the history of one or all branches (git log) View the history of a file View the history of a line in a file (Git Blame). https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory PARA TRABALHAR COM AS BRANCHES #Para criar git branch nome_da_branch_nova #para trocar de branch git checkout nome_da_branch #Para visualizar a branch que estamos trabalhando git branch #Para voltar para a branch anterior git checkout - #Para criar uma branch e já mudar para ela vamos usar: git checkout -b nome_da_branch PARA VISUALIZARMOS O FLUXO DOS MERGES E REBASE VAMOS USAR: #Esse comando ira mostrar um log mais completo com linha do tempo na esquerda. git log --graph MERGE * Acaba criando novo commit para nos informar que foi feito mudança e que ela foi enviada para nossa linha do tempo principal. #Lembrando o comando para mergiar git merge nome_da_outra_branch REBASE * Após criar uma nova branch, fazemos um rebase com a branch “main” para atualizar a nossa time line. Vai trazer tudo na ordem cronológica. * Rebase é mais usado em branches separadas (Não usar na nossa main) #Para fazer um rebase de informações para a branch que estamos vamos fazer: git rebase nome_da_outra_branch -------------------------------------------------------------------------------- AULA 11 STASH NA PRÁTICA * PDF 11-modulo-vi-stash-na-pratica.pdf https://drive.google.com/file/d/1zOzmKMxilGwYj-y68lo_ILMXI5tGm_ZV/view?usp=drivesdk Observações: * Usado para salvar o estado do nosso projeto na area temporária. * O stash será salvo na branch que realizamos a modificação. EXEMPLO DE USO DO STASH #Salvará as alterações na area temporária. git stash #OBS: #Também podemos incluir arquivos untracked no nosso stash. Ficaria: git stash --include-untracked PARA CONSULTAR A LISTA COM CONTEÚDO STASH SALVOS USAREMOS: #Aqui teremos acesso a todas os "stash" salvos. git stash list PARA INCORPORAR AS ALTERAÇÕES TEMPORÁRIAS VAMOS USAR: #Pegando as modificações da area temporaria git stash aply PARA LIMPAR A LISTA TEMPORÁRIA VAMOS USAR: #Limpando lista dos "stash's" git stash clear -------------------------------------------------------------------------------- AULA 12 CONHECENDO O .GITIGNORE * PDF 12-modulo-vi-conhecendo-o-.gitignore.pdf https://drive.google.com/file/d/1MoKBA6-CgcPmWhMA2Hl6oQm9kQMlgsY0/view?usp=drivesdk * Paginas úteis GitHub - github/gitignore: A collection of useful .gitignore templates This is GitHub's collection of file templates. We use this list to populate the .gitignore template choosers available in the GitHub.com interface when creating new repositories and files. https://github.com/github/gitignore Git - gitignore Documentation A gitignore file specifies intentionally untracked files that Git should ignore. Files already tracked by Git are not affected; see the NOTES below for details. Each line in a gitignore file specifies a pattern. https://git-scm.com/docs/gitignore OBSERVAÇÕES: * Delimita arquivos que não serão enviados para o repositório do nosso projeto * O nome do arquivo deve ser posto dentro do documento “.gitignore” para ser ignorado. PRIMEIRO VAMOS TER DE CRIAR UM ARQUIVO DENTRO DA PASTA QUE ESTAMOS #O nome do arquivo vai ser ".gitignore" (Sem apastas) #No terminal fica: touch .gitignore #Também podemos criar direto do VS code com botão direito "new file". AGORA É SÓ ADICIONAR O NOME DO ARQUIVO DENTRO DO ARQUIVO CRIADO ANTERIORMENTE. #Se for pelo terminal fica: vim .gitignore #Também podemos fazer isso de forma facilitada pelo VSCode -------------------------------------------------------------------------------- AULA 13 - GIT REVERT NA PRÁTICA * PDF 13-modulo-vi-git-revert-na-pratica.pdf https://drive.google.com/file/d/1-Rq-QA6UsZp04Qrg-YgAKPINyvox0-Qc/view?usp=drivesdk OBSERVAÇÕES: * Desfaz a alteração na time line principal. * Mantem a alteração na branch de origem. * Geralmente usamos para desfazer algo na branch main. PODEMOS VISUALIZAR OS COMMITS COM: #Revisando git log PARA VISUALIZAR A MUDANÇA REALIZADA EM DETALHES PELO COMMIT VAMOS: #Depois de copiar o commit no git log, iremos usar: git show nome_do_commit #Será mostrada toda modificação que foi gerada. PARA REVERTER VAMOS FAZER #Pegamos o id do commit que queremos reverter git revert nome_do_commit_para_reverter -------------------------------------------------------------------------------- AULA 14 WORKFLOWS COM GIT * PDF 14-modulo-vi-workflows-com-git.pdf https://drive.google.com/file/d/1DD4zQMVqx2hI_kq0SeGcAn4pyEme47Zx/view?usp=drivesdk Observações: Possibilita rotina de trabalho mais consistente e produtiva. TEMOS 3 FLUXOS DE TRABALHO DIFERENTES 1 - CENTRALIZED * Todos os desenvolvedores trabalham na mesma branch main. * Facilita para ter organização na ordem de commits. * Geralmente usado em times muito pequenos. * Modelo exemplo: 2 - FEATURE BRANCH * Cada nova funcionalidade terá uma branch especifica. * Geralmente mais usada em times grandes. * Nesse modelo nenhum push é feito na branch main. * Modelo exemplo: 3 - GITFLOW * Cada dev vai usar um modelo estrito de branch projetada em torno do projeto. * Modelo -------------------------------------------------------------------------------- AULA 15 - WORKFLOW CENTRALIZADO NA PRÁTICA * PDF 15-modulo-vi-workflow-centralizado-na-pratica.pdf https://drive.google.com/file/d/19KSFV_9Mu8LN2tYPfSNlnVupaAr9BElf/view?usp=drivesdk OBSERVAÇÃO: * Neste modelo de trabalho, precisamos sempre prezar pela organização da timeline. * Antes de fazermos push, vamos ter de fazer um pull pra organizar a cronologia do nosso trabalho (Importante !). PRIMEIRO VAMOS ORGANIZAR A NOSSA TIMELINE #Nosso commit vai ficar no topo sempre. git pull orgin main --rebase DEPOIS DE ORGANIZADA, VAMOS FAZER O PUSH DOS NOSSOS COMMITS #Lembrando o comando visto anteriormente: git push origin main -------------------------------------------------------------------------------- AULA 16 PULL REQUEST E FEATURE BRANCH NA PRÁTICA * PDF 16-modulo-vi-pull-request-e-feature-branch-na-pratica.pdf https://drive.google.com/file/d/1LwnGQ12sWDixg65ZKc2YM7OELr4ScNWz/view?usp=drivesdk PULL REQUESTS (PR) * Solicitação de merge de uma branch em outra branch. * Geralmente usada para passar conteúdo de uma branch nossa para a main do nosso repositório remoto. * O processo de solicitação request permite que a modificação do código passe por uma avaliação antes do merge. FASES ATÉ O PULL REQUEST 1. Vamos criar uma branch da funcionalidade e fazer as mudanças. 2. Vamos fazer o git add e depois fazer o commit da mudança. 3. Vamos fazer o pull para o repositório remoto informando a branch git push nome_do_rep_remoto nome_da_branch_que_queremos_enviar 4. Agora vamos ir na página do projeto e clicar no pool request 5. Na página de request, vamos informar pra qual branch estamos querendo mandar o conteúdo. * Podemos fazer uma descrição do request e comentar o que foi feito * Podemos marcar os revisores do código (Na opção a direita). * Podemos fazer sugestão para melhoria dos requests -------------------------------------------------------------------------------- AULA 17 RESOLVENDO CONFLITOS NA PRÁTICA * PDF 17-modulo-vi-resolvendo-conflitos-na-pratica.pdf https://drive.google.com/file/d/1stg7FLs5-ALuAuGiHFWnBJLHvsdy6uWC/view?usp=drivesdk * Exemplo de conflito NO CONFLITO TEMOS 3 OPÇÕES: Accept both changes * Vai incluir as 2 modificações paralelamente. Accept incoming changes * Vai aceitar a melhoria proposta pela outra branch. Accept current changes * Vai aceitar a melhoria proposta pela branch que estamos. APÓS FAZER A ESCOLHA DA MELHOR OPÇÃO VAMOS TER DE FAZER O GIT CONTINUAR 💡 Lembrando que o git vai salvar o conflito e isso precisa ser enviado para a time line. #Se for rebase vamos usar git status * Precisamos adicionar o conflito no staged antes de prosseguir #Adicionando arquivo git add nome_do_arquivo_com_conflito DEPOIS DE ADICIONAR, VAMOS TER DE CONTINUAR COM O REBASE OU MERGE Se o conflito for no rebase vamos usar: git rebase --continue Se o conflito foi no merge vamos usar git merge --continue 💡 O git irá criar um commit informando o conflito. * O código do conflito pode ser analisado separadamente e reincorporado caso necessário. -------------------------------------------------------------------------------- AULA 18 ADICIONANDO O SITE NO GITHUB PAGES * PDF 18-modulo-vi-adicionando-o-site-no-github-pages.pdf https://drive.google.com/file/d/1VreNQeMhLBlUvWBTA4ca9o6yk0QvPv8Y/view?usp=drivesdk OBSERVAÇÕES: * Podemos hospedar nosso projeto para gerar link externo. * Só consigo hospedar projetos que contem HTML, CSS e JavaScript * Para hospedarmos temos que fazer: 💡 Após a hospedagem sera gerado um link que podemos compartilhar. A base do link fica: id_do_usuário_+.github.io+nome_do_projeto -------------------------------------------------------------------------------- DIO TÓPICOS FUNDAMENTAIS PARA ENTENDER O FUNCIONAMENTO DO GIT * Entendendo como o Git funciona por baixo dos panos. SHA1 A sigla SHA significa Secure Hash Algorithm, que é um conjunto de funcões hash criptográficas projetadas pela NSA (Agência Nacional de Segurança dos EUA) Essa encriptação gera um conjunto de caracteres identificadores com 40 dígitos. * Exemplos práticos de Sha1 Vamos criar um bloco de notas com o nome texto. E dentro desse desse bloco de notas, vamos escrever “Olá, meu nome é Hugo” Agora vamos gerar a chave criptográfica do bloco de notas com o comando “openssl sha1” O comando será escrito da seguinte forma: Então é gerado uma chave criptografada do arquivo de texto no estado atual. E se mudarmos o arquivo? Vamos adicionar uma excalamação no final, deixando “Olá, meu nome é Hugo!” Vamos usar novamente o comando: openssl sha1 texto.txt openssl sha1 texto.txt Com isso podemos ver que uma chave diferente foi gerada. devido ao ponto de exclamação no final que alterou o estado do arquivo. E se mudarmos o arquivo mais uma vez? Novamente gera uma chave diferente. Então se eu mudar de volta para o estado inicial do primeiro exemplo, a chave de identificação volta ao mesmo estado também. GERANDO CHAVES SSH E TOKEN * Chave SSH A chave SSH é a autenticação da sua máquina no Github, você gera uma chave SSH para declarar a sua máquina para o seu perfil no Github como máquina confiável. Ideal para maquinas pessoais ou máquinas que somente você usa em uma empresa, pois não pede autenticações de senha durante o uso do Git e Github em conjunto. Tornando o processo mais fácil e até mais seguro do que digitando a senha durante o uso. Como gerar a chave? ssh-keygen -t ed25519 -C hugodiscord@outlook.com Observações: O ed25519 é o tipo de criptografia de segurança usada na chave, há outros tipos criptografias usados como o ed448 por exemplo, mas a mais usada, mais atual e considerada mais segura é a ed25519. O Email é o do Github. E o -C é usado maiúsculo mesmo. Essa parte será digitavel, é onde você poderá escolher o local/repositório onde a sua chave vai ficar armazenada. Caso aperte Enter sem digitar nada, ela irá para o repositório padrão conforme o ilustrado na imagem. Se for mudar o diretório, é ideal que saiba o que está fazendo. Por enquanto faremos o procedimento na pasta padrão mesmo. O .ssh com espaço e ponto antes do nome “ssh” simboliza uma pasta oculta. Aqui vai pedir para digitar uma senha e depois confirmar essa senha. Observação: Essa senha é a senha de acesso do arquivo da chave e não a senha do Github. Após as confirmações, irá para a tela da imagem logo a seguir: A suas chaves públicas e privadas foram geradas e salvas no diretório especificado acima. (/c/Users…. ) O SHA256 é a criptografia da sua chave SSH E a arte aleatória criptográfica da sua chave. Então agora vamos ver a chave nos diretórios Usaremos o cd para ir no diretório da chave e o ls para vermos as chaves salvas no diretório. Lembrando que será a chave publica que vamos expor no Github. Então usaremos um comando para pegarmos o código na chave pública. cat id_ed25519.pub Você receberá esse desde o ssh-ed25519, , código enorme e com o email no final, você copiará tudo, incluindo o e-mail e será usado no Github. Ok, agora vamos ao Github. E faremos o seguinte caminho: Clique na sua foto no canto superior direto > Settings > e na parte esquerda selecione SSH and GPG Keys. No Titile você vai dar um nome para o seu PC E no Key você vai usar o código copiado. E aqui você terá a confirmação da sua chave salva. E por fim os últimos passos no Git. Primeiro você vai usar o comando eval $(ssh-agent -s) Sera gerado um Agent Pid de alguns algarismos que é o começo do processo. E por fim o comando: ssh-add id_ed25519 * Token Por fim o Token de acesso pessoal, que é a sua chave da conta por Token. Faça o seguinte caminho: Developer Settings > Personal acess tokens > Generate new token Então na opção Note, você dará o nome da sua Token, escolherá a data de Expiração para essa Token e terá outras opções de segurança da Token. Por enquanto só é necessário marcar a opção repo Você cria a chave e você receberá um código dessa chave. Observação: O Github só te vai mostrar essa chave uma ÚNICA vez, então tenha certeza de guardar em um local bem seguro.