Conectar por SSH con GitHub

Sabemos algo de git e agora queremos traballar cos nosos repositorios en remoto. Xa temos conta en GitHub?

O teu traballo:

GitHub quere saber quen somos e para entrar na súa web pídenos un contrasinal e podemos autenticarnos con dous factores se queremos. Imos tratar de que cada vez que fagamos algo en remoto non sexa necesario teclear nada. Usaremos unha parelliña de chaves público-privada e pasaremos á web a chave pública.

  1. Teclea en linux ssh-keygen
  2. Podes aceptar todo o que trae de fábrica facendo intro en cada pregunta. Anota onde vai gardar a parella, normalmente estarán en /home/usuario/.ssh
  3. Vai a esa carpeta e copia o contido do ficheiro que remata en .pub
  4. Abre a túa conta de GitHub
    1. Á dereita arriba, onde o teu avatar escolle Settings
    2. Na columna da esquerda fai clic en SSH  and GPG Keys
    3. Preme en New Key
    4. Teclea un título, por exemplo Máquina Virtual do insti
    5. Pega a túa chave pública e Add SSH KeyDebería quedar algo así como:

Comproba que das conectado con GitHub:
ssh -T git@github.com

Dille que yes a  ser  amiguitos. A partires de agora cada vez que usemos o equipo no que está a nosa parella de chaves pública-privada GitHub xa sabe quen somos.

Pólas en paralelo

Unha das cousas máis interesantes que se fai co control de versións é fabricar pólas que en inglés son branch. Moito tino co que facemos que esto ponse interesante.

O teu traballo:

Anota cal é a póla que temos de fábrica usando:
git branch

Nun dos teus repositorios crea unha póla que se vai chamar develop, que queda moi profesional:
git branch develop

Miramos si por curiosidade creouna:
git branch

Está alí? Quen está con asterisco? Que significa ese asterisco? Agora imos movernos alí:
git switch develop

Xa podemos traballar nesta póla e facer todo canta trangallada queiras: meter na stagging area, facer commits, … que non afectará a o que tes na póla que vén de fábrica.

Volvemos á póla principal:
git switch master

Incorporamos todos os cambios que fixemos en develop:
git merge develop

Como borramos develop?

Ver diferencias con git

Temos un estupendo repositorio, ou sexa carpeta na que fixemos git init e andamos a voltas co control de versións.

O teu traballo:

  1. No teu repositorio teclea algo interesante nun par de liñas no ficheiro ao que chamamos README.md,  por exemplo unha liña chea de números.
  2. Engádeo á stagging area con git add README.md ou mete todo con --all
  3. Despois fai un commit con algo así como git commit -m "Liña de numeritos"
  4. Lembra git status para que axude un chisco.
  5. Teclea no ficheiro unha liña nova co teu nome propio e fai todo o anterior, no commit pon a mensaxe “Engadín o meu nome”

Agora queremos ver se todo quedou rexistrado: git log
Tedes todos algo así? Imos ver as diferencias entre as versións que fixemos. Tede conta da ristra de caracteres en laranxa, son os indicadores dos commit. Os vosos teñen que se distintos dos meus. Se quero ver a diferencia entre a versión co meu nome  e a que só ten números teño que copiar e pegar a ristra de caracteres que me interesa (en realidade cos primeiros chega). No meu caso sería:

git diff 10b602 0c728

e o que obteño eu, cos meus identificadores dos commit é:

Fixádevos que me conta moita información: en vermello a diferencia entre un ficheiro e o outro. Xoga ti agora cos commits e coas  diferencias e conta no teu blog o que fixeches.

Consulta nesta web como mellorar o comando git log. Por exemplo pode ser cómodo e máis cuqui:

git log --pretty=oneline

git en terminal

Para facer un control de versións imos empregar git e farémolo desta volta no terminal dunha máquina virtual con Linux. Comezaremos coa instalación e trataremos algúns conceptos que temos que ter afianzados para seguir adiante. Non é sinxelo ao principio, imos de vagar e xa veredes que é moi interesante.

O teu traballo:

  • Instala git no teu equipo:  apt install git 
  • Configúrao cos teus datos, só tes que facelo unha vez na vida:

git config --global user.name "o teu nome entre comiñas"
git config --global user.email "o teu correo electrónico" 

  • Comproba que escribiches os datos  ben:  git config --list 
  • Imos facer o noso primeiro control de versións, fai capturas de todo:
    1. Crea unha carpeta que se chame versioncitas/
    2. Mete nela un par de ficheiros: README.md e código.py con algo de contido.
    3. Agora imos dicir no terminal que queremos ter control de versións nesta carpeta:  git init 
    4. Comprobo que aconteceu: ls -a versioncita/
    5. Cotillea o que tes en  ls .git  nunca imos precisar tocar esta carpeta: todo vai ser automático.
    6. Averigua a situación na que estamos:  git status 
    7. Agora imos engadir os ficheiros para que controle as versións segundo imos traballando tal e como nos indica:  git add --all Ficheiros engadidos, tecnicamente dise que están na stagging area (ver debuxiño arriba)
    8. Notade que nos avisa de que temos que facer un commit que vén sendo confirmar que os ficheiros van pasar ao repositorio local no disco. Debemos poñer tamén unha mensaxe con información. Tecleamos  git commit -m "O meu  primeiro repositorio en local, que ilu" 
    9. Comprobamos que todo está ben:  git status 
    10. Visualizamos o que fixemos:  git log 
    11. Modifica un dos teus ficheiros, p.e. engade unha nova liña de texto, e volve a metelo na stagging area e facer un commit desta nova versión para o teu repo local.

Control de versións

Preparando unha tarefa importante e longa decido chamarlle documento.md así de orixinal. Ao día seguinte melloro un chisco pero non estou convencido do feito, decido chamarlle documento2.md. O terceiro día decido cambiar a orde dos parágrafos e tecleo outro pouco en documento3.md. Recoñeces esa situación? Xa tes tres versións dun mesmo documento, seguro que a derradeira é a boa?

O teu traballo:

  1. Pescuda o que é un sistema de control de versións.
  2. Crea un documento en GoogleDrive e fai un par de versións. Recupera unha versión anterior. Fai capturas de pantalla  e explica como fixeches.
  3. Cales son  as diferencias entre un modelo centralizado e un modelo distribuído?
  4. Que modelo é co que funciona git?
  5. Busca unha definición de repositorio.
  6. Que é clonar? que é un fork?
  7. Abre unha conta en GitHub e cotillea como son os repositorios existentes. Anota a URL da túa conta para que poidamos visitar os teus repositorios.