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 [2022/09/19 17:45] enrique_mieza_sanchez |
vcs [2023/09/26 15:33] (actual) enric_mieza_sanchez |
||
---|---|---|---|
Línia 1: | Línia 1: | ||
- | ~~REVEALJS~~ | + | ~~REVEAL~~ |
====== VCS: Sistema de control de versions ====== | ====== VCS: Sistema de control de versions ====== | ||
Línia 19: | 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 52: | 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 72: | 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 80: | 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 130: | 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 |
- | + | ||
- | \\ | + | |
- | + | ||
- | \\ | + | |
- | + | ||
- | \\ | + | |
\\ | \\ |