---
# System prepended metadata

title: Pràctica 01 -GIT-. Inicialització d'un repositori GIT i commit inicial.
tags: [SOC, daw, ' M8', ' GIT', ' Control Versions']

---

---
title: Pràctica 01 -GIT-. Inicialització d'un repositori GIT i commit inicial.
tags: daw, GIT, Control Versions, M8,SOC
---

<div style="width: 30%; margin-left: auto;">
    
![](https://hackmd.io/_uploads/HJiR4eGJT.png)  
    
![image](https://hackmd.io/_uploads/By3ai4Bolx.png)
    
</div>


<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Llicència de Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />Aquesta obra està subjecta a una llicència de <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Reconeixement-CompartirIgual 4.0 Internacional de Creative Commons</a>

# Pràctica 01 -GIT-. Inicialització d'un repositori GIT i commit inicial
![](https://hackmd.io/_uploads/H1_wniXS3.png)

En aquesta pràctica crearem el nostre escut de protecció de repositoris contra modificacions indesitjades i recuperador de releases. O en altres paraules, crearem un repositori GIT associat al nostre projecte.
>Nota: Per a la realització d'aquesta pràctica suposem que tenim git instal·lat al nostre sistema i amb la configuració mínima necessària. En cas de no tenir git instal·lat o configurat ves a '[01. Sistemes de controls de versions [GIT]](/C8npKAuyQj6fU-E-v_9n4g)' o comenta-ho amb el profe :)

## Contingut de la pràctica.
Shhh! no li digueu a ningú, però estem a punt de reproduïr el projecte de programari més exitós de l'univers conegut per la espècie humana. És virtualment impossible que no hagiu sentit mai parlar d'ell, als cercles més selectes de desenvolupadors i acadèmics s'el coneix com a _'Hello World!'_.
Donada la importància del nostre projecte, necessitem un bon control de versions i hem triat GIT per la seva demostrada eficàcia.
### Objectius de la pràctica:
1. Crear un directori on allotjar el nostre projecte '~/hello_world_project/'. I un altre directori dins del projecte on desarem el nostre codi font: './src/'
2. Crear -_inicialitzar_- un repositori GIT al nostre projecte.
3. Dins de ./src/ generar el nostre primer fitxer de codi: 'hello_world.py'. A continuació et donem el contingut d'aquest fitxer:
```python=
#!/usr/bin/python3
 
def main():
    print('Hello world!')

if __name__ == "__main__":
    main()
```
4. Crear un nou commit amb el nostre codi font.

### Temporització:

:watch: Temps previst de realització 15-20 minuts. 
Pren-te el temps necessari per a entendre els conceptes relacionats amb el control de versions i no perdis massa temps amb les tasques auxiliars com generar carpetes i contingut de fitxers.

---
---

## Temps per intentar fer la pràctica sense mirar la solució.
Ès molt important que intentis fer la pràctica sense mirar la resta del document, si ho necessites pots tornar a llegir els documents anteriors.
En acabar verifica si la solució proposada coincideix amb la teva i comenta amb el professor i la resta de la classe les possibles diferències i mètodes alternatius de realització.

![](https://hackmd.io/_uploads/ByV6q4jS3.png)


---
---

## Solució:

### Pas 01. Creació del nostre projecte.
Per a començar crearem una carpeta al nostre directori 'home' anomenada 'hello_world_project' i canviarem el nostre directori de treball a aquesta carpeta:
```bash=
$ mkdir -p ~/hello_world_project
$ cd ~/hello_world_project
```
### Pas 02. Creació d'un repositori GIT al nostre projecte.
```bash=
$ git init
Inicializado repositorio Git vacío en ~/hello_world_project/.git/

$ ls -la
total 12
drwxrwxr-x  3 xavi xavi 4096 may 23 18:30 .
drwxr-x--- 30 xavi xavi 4096 may 23 18:25 ..
drwxrwxr-x  7 xavi xavi 4096 may 23 18:30 .git
```
Com podem observar s'ha creat un directori ocult _'.git'_, dins d'aquest directori s'escriurà tota l'història del nostre projecte i és el que anomenem __repositori__. I des d'aquest mateix instant ja conté tota una estructura preparada per ajudar-nos.
```bash=
$ ls -la .git
total 40
drwxrwxr-x 7 xavi xavi 4096 may 23 18:30 .
drwxrwxr-x 3 xavi xavi 4096 may 23 18:30 ..
drwxrwxr-x 2 xavi xavi 4096 may 23 18:30 branches
-rw-rw-r-- 1 xavi xavi   92 may 23 18:30 config
-rw-rw-r-- 1 xavi xavi   73 may 23 18:30 description
-rw-rw-r-- 1 xavi xavi   21 may 23 18:30 HEAD
drwxrwxr-x 2 xavi xavi 4096 may 23 18:30 hooks
drwxrwxr-x 2 xavi xavi 4096 may 23 18:30 info
drwxrwxr-x 4 xavi xavi 4096 may 23 18:30 objects
drwxrwxr-x 4 xavi xavi 4096 may 23 18:30 refs
```
### Pas 03. Comencem a crear contingut.
Com a primer pas generarem un primer fitxer de codi font al nostre projecte:
```bash=
$ mkdir -p src
$ cat <<EOF >src/hello_world.py
> #!/usr/bin/python3
> 
> def main():
>     print('Hello world!')
> 
> if __name__ == "__main__":
>     main()
> EOF
```
### Pas 04. Crear el nostre primer commit que contingui el nostre codi font.
Afegir el nou fitxer a la llista de fitxers que es desaran al següent _'commit'_, un commit és una escritura al nostre repositori, és una pàgina a la història del nostre projecte.
```bash=
$ git add src/hello_world.py
```
En aquest punt estem preparats per a crear el nostre primer commit i crear un primer punt de recuperació del nostre codi:
```bash=
$ git commit -m "El nostre primer punt de recuperació."
[main (commit-raíz) 3efcaa1] El nostre primer punt de recuperació.
 1 file changed, 7 insertions(+)
 create mode 100644 src/hello_world.py
```
A partir d'ara, sempre podrem recuperar l'estat actual del nostre projecte malgrat qualsevol modificació posterior inclós que esborrem el fitxer src/hello_world.py, sempre el podrem tornar a recuperar tal i com està ara.
### Continuar aprenent.
[02. Git com a llista de commits ordenats en el temps.](/aLlqarGrSDeBWPrkliswgw)