Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
|
vcs [2021/10/14 14:53] enrique_mieza_sanchez [VCS: Sistema de control de versions] |
vcs [2023/09/26 15:33] (actual) enric_mieza_sanchez |
||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| + | ~~REVEAL~~ | ||
| ====== VCS: Sistema de control de versions ====== | ====== VCS: Sistema de control de versions ====== | ||
| Línia 11: | Línia 12: | ||
| * [[https:// | * [[https:// | ||
| - | {{tag> #Daw #DawMp08 #DawMp08Uf4 # | + | {{tag> #Daw #DawMp08 #DawMp08Uf4 # |
| ===== Introducció ===== | ===== Introducció ===== | ||
| Línia 18: | Línia 19: | ||
| Cada cop que fem un canvi en el repositori el consolidem fent un **// | Cada cop que fem un canvi en el repositori el consolidem fent un **// | ||
| + | |||
| + | {{ commits.png }} | ||
| També ens permetrà tenir un **historial** de tots els canvis efectuats al repositori, consultable i recuperable en qualsevol moment. | També ens permetrà tenir un **historial** de tots els canvis efectuats al repositori, consultable i recuperable en qualsevol moment. | ||
| + | ==== Videotutorial ==== | ||
| Videotutorial per iniciar-se amb Git i Apache: | Videotutorial per iniciar-se amb Git i Apache: | ||
| {{youtube> | {{youtube> | ||
| \\ | \\ | ||
| - | |||
| ===== Branques ===== | ===== Branques ===== | ||
| - | |||
| Una de les missions importants d'un VCS és la de facilitar el treball en equip. Això s' | Una de les missions importants d'un VCS és la de facilitar el treball en equip. Això s' | ||
| + | |||
| + | {{ branch-scrum.gif? | ||
| Exemple1: Branques d'un repositori orientades a desenvolupament amb metodologia Scrum. | Exemple1: Branques d'un repositori orientades a desenvolupament amb metodologia Scrum. | ||
| - | {{ branch-scrum.gif? | ||
| - | Exemple2: | + | ===== Branques orientades a desplegament |
| - | {{ branches6.png? | + | Habitualment tindrem, com a mínim, 3 branques: dev, pre i pro |
| + | |||
| + | {{ branches6.png? | ||
| Originem una branca a partir d'un punt de versió concret o //commit//. A partir d' | Originem una branca a partir d'un punt de versió concret o //commit//. A partir d' | ||
| - | Quan volem incorporar els canvis fets a la branca | + | ===== Merge: fusió de branques ===== |
| + | |||
| + | Quan volem incorporar els canvis fets d'una branca | ||
| - | {{ vcs-merge.png? | + | **Aquesta operació és delicada i implica refer tots els tests necessaris per assegurar-nos que el codi fusionat continua funcionant**. |
| + | {{ vcs-merge.png? | ||
| \\ | \\ | ||
| Línia 51: | Línia 59: | ||
| Exemples d' | Exemples d' | ||
| - | {{vcs-centralitzat.png?300}} {{vcs-distribuit.png? | + | {{ vcs-centralitzat.png }} |
| - | En canvi, un **sistema de control de versions | + | Per exemeple, quan un desenvolupador havia d' |
| + | |||
| + | ===== VCS distribuït ===== | ||
| + | |||
| + | {{ vcs-distribuit.png }} | ||
| + | |||
| + | En canvi, un **sistema de control de versions | ||
| Exemples de sistemes de control de versions: | Exemples de sistemes de control de versions: | ||
| Línia 71: | Línia 85: | ||
| Git controla contingut, no arxius. Per tant, és molt fàcil esborrar, reanomenar sense avisar a Git, i l' | Git controla contingut, no arxius. Per tant, és molt fàcil esborrar, reanomenar sense avisar a Git, i l' | ||
| + | \\ | ||
| + | |||
| + | ===== Git (2) ===== | ||
| Algunes dades de referència (del 2009): | Algunes dades de referència (del 2009): | ||
| * Linux Kernel constava de 22.000 arxius. | * Linux Kernel constava de 22.000 arxius. | ||
| Línia 79: | Línia 96: | ||
| * En Git : 300 MB | * En Git : 300 MB | ||
| + | \\ | ||
| - | ==== Com funciona Git ==== | + | ===== Com funciona Git ===== |
| - | Mostrem en images | + | Mostrem en imatges |
| - | ---- | + | {{ git1.png? |
| - | {{git1.png }} | ||
| Comencem desenvolupant un projecte en local. | Comencem desenvolupant un projecte en local. | ||
| - | ---- | + | Prem abaix per seguir la seqüència: |
| - | {{ git2.png}} | + | ==== Clonació ==== |
| Un segon desenvolupador fa una còpia del nostre projecte. | Un segon desenvolupador fa una còpia del nostre projecte. | ||
| - | ---- | + | {{ git2.png? |
| - | {{git3.png }} | + | ==== Afegint codi ==== |
| Cada desenvolupador segueix treballant individualment. | Cada desenvolupador segueix treballant individualment. | ||
| - | ---- | + | {{ git3.png? |
| - | {{ git4.png}} | + | ==== Més codi ==== |
| Els canvis de cadascun no afecten l' | Els canvis de cadascun no afecten l' | ||
| - | ---- | + | {{ git4.png?600 }} |
| - | + | ||
| - | {{git5.png }} | + | |
| + | ==== Fetch ==== | ||
| El desenvolupador principal descarrega els canvis que ha fet el 2n desenvolupador. | El desenvolupador principal descarrega els canvis que ha fet el 2n desenvolupador. | ||
| - | ---- | + | {{ git5.png? |
| - | {{ git6.png}} | + | ==== Merge ==== |
| - | ...i els barreja | + | Combina |
| - | ---- | + | {{ git6.png? |
| - | {{git7.png }} | + | ==== Fetch (2) ==== |
| Finalment, el segon desenvolupador descarrega els canvis del primer, amb els seus propis canvis integrats. | Finalment, el segon desenvolupador descarrega els canvis del primer, amb els seus propis canvis integrats. | ||
| - | ---- | + | {{ git7.png? |
| - | + | ||
| - | \\ | + | |
| \\ | \\ | ||
| Línia 129: | Línia 142: | ||
| Disposar de Git és una gran cosa, però també cal seguir unes bones pràctiques a l'hora de crear i administrar les branques. | Disposar de Git és una gran cosa, però també cal seguir unes bones pràctiques a l'hora de crear i administrar les branques. | ||
| + | ===== Distribuït però centralitzat ===== | ||
| + | Amb **" | ||
| - | ==== Distribuït però centralitzat | + | Un projecte en Git pot ser centralitzat |
| - | Amb Git es sol utilitzar un esquema " | + | {{ centr-decentralized-vcs.png? |
| - | O sigui, que un determinat projecte Git pot ser centralitzat per conveniència, | ||
| - | {{centr-decentralized-vcs.png? | + | ===== Model exitós: git-flow ===== |
| - | + | ||
| - | + | ||
| - | ==== Model exitós ==== | + | |
| Fa 10 anys [[https:// | Fa 10 anys [[https:// | ||
| + | {{ hotfix-branches.png? | ||
| - | {{ hotfix-branches.png? | + | ===== Caraterístiques del "git-flow" ===== |
| - | En aquest | + | A l' |
| - | | + | * Main branches, existeixen sempre |
| - | * **master** : actualment | + | * **main** : abans es deia " |
| - | * **develop** | + | * **develop** |
| - | | + | |
| - | * Feature branch | + | * Feature branch |
| - | * Release branch : pre / pro | + | * Release branch : **pre** (preproducció) |
| - | * Hotfix branch | + | * Hotfix branch |
| - | + | ||
| - | \\ | + | |
| - | + | ||
| - | \\ | + | |
| - | + | ||
| - | \\ | + | |
| \\ | \\ | ||