Primers pasos amb git

Posted on mié 09 febrero 2022 in Receptes

Resulta que jo en tots aquests anys no he tingut mai necessitat de fer coses amb git ni amb github. De fet ara tampoc hi tinc cap necessitat a la feina actual de fer coses amb github, però el cas és que vull fer-ne coses amb github. Per exemple com a lloc on tenir la última versió vàlida i correcta del blog aquest que estàs llegint, perquè sempre tinc les mil i una coses per tot arreu, entre el fixe, el portàtil i etc.

Creació repositori

Creo gràficament un repositori a github.com/new. Entenc que ja tenim un usuari registrat. Quan creem el repositori podem inicialitzar-lo amb diverses opcions:

. afegir un fitxer README

. afegir un .gitignore

. triar una llicència.

Un cop generat, creo un fitxer de prova, buit.

Connexió a github

. Per connectar-nos a github hem de generar prèviament una clau pública ssh amb la comanda:

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

...durant la creació de la clau ens demanarà on la volem desar i amb quin nom.

...ens demanarà també si volem ficar una paràfrase.

. Un cop generada la clau, l'afegirem al nostre ssh-agent.

ssh-add ~/.ssh/id_nom_clau

. Ens en anem al nostre compte de github -> Settings -> SSH and GPG keys. I dintre d'allà a "New SSH key" o "Add SSH key". Afegim un títol descriptiu i copiem el contingut de la clau generada en el pas anterior. Ens demanarà que confirmem amb el nostre password de github?

Actualització dels canvis

. Una primera cosa que faig és descarregar-me el repositori en local:

feina@acheron:~/git$ git clone git@github.com:XaviRoijals/prova.git
Cloning into 'prova'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
Receiving objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
feina@acheron:~/git$ 

. Inicialitzo el repositori:

feina@acheron:~/git/prova$ git add .

. Li faig algunes modificacions. Esborro el fitxer prova i creo un fitxer buit prova2.

feina@acheron:~/git/prova$ rm prova
feina@acheron:~/git/prova$ touch prova2

. Faig el primer commit, que m'indica les operacions que haig de fer sobre git:

feina@acheron:~/git/prova$ git commit -m "primers canvis"
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    deleted:    prova

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    prova2

no changes added to commit (use "git add" and/or "git commit -a")

...faig els canvis que me diu ell i torno a fer el commit:

feina@acheron:~/git/prova$ git rm prova
rm 'prova'
feina@acheron:~/git/prova$ git add prova2
feina@acheron:~/git/prova$ git commit -m "primers canvis"
[main e40f888] primers canvis
 2 files changed, 1 deletion(-)
 delete mode 100644 prova
 create mode 100644 prova2

. Llavors ja puc pujar els fitxers a github:

(pelican) feina@acheron:~/git/prova$ git push
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Writing objects: 100% (3/3), 238 bytes | 238.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:XaviRoijals/prova.git
   7189117..e40f888  main -> main

I ja m'apareix com cal els canvis al repositori de github. Aquí encara tinc dubtes, les diferències entre "git push2 i "git push origin master", branches, etc. Però això ja ho aniré arreglant en posteriors entregues...

ciao ciao :)

:wq