Salta el contingut
 

Exemple: Estratègia de ramificació en un projecte

Autor: Joan Puigcerver Ibáñez

Correu electrònic: j.puigcerveribanez@edu.gva.es

Llicència: CC BY-NC-SA 4.0

(Reconeixement - NoComercial - CompartirIgual) 🅭

Exemple: Estratègia de ramificació

En aquest material veurem com es pot utilitzar una estratègia de ramificació en un projecte de desenvolupament de programari.

En aquest projecte utilitzarem la tècnica d'integració Fusió merge --squash.

Repositori remot

Anem a simular un projecte de desenvolupament de programari on tres desenvolupadors treballen en diferents funcionalitats de manera independent.

Per evitar haver de crear un repositori a GitHub, crearem un repositori remot en la màquina local.

jpuigcerver@fp:~ $ mkdir -p ~/git_estrategies/remot
jpuigcerver@fp:~ $ cd ~/git_estrategies/remot
jpuigcerver@fp:~/git_estrategies/remot $ git init
Initialized empty Git repository in ~/git_estrategies/remot/.git/
jpuigcerver@fp:~/git_estrategies/remot (main) $ git branch -m main
jpuigcerver@fp:~/git_estrategies/remot (main) $ echo "# Estratègies de ramificació" > README.md
jpuigcerver@fp:~/git_estrategies/remot (main) $ git add README.md
jpuigcerver@fp:~/git_estrategies/remot (main) $ git commit -m "Commit inicial"
[main (root-commit) ec0e2bd] Commit inicial
 1 file changed, 1 insertion(+)
 create mode 100644 README.md
jpuigcerver@fp:~/git_estrategies/remot (main) $ git lga
* ec0e2bd - (0 seconds ago) Commit inicial - Joan Puigcerver (HEAD -> main)
jpuigcerver@fp:~/git_estrategies/remot (main) $ git config --bool core.bare true # (1)!
  1. Aquesta comanda és necessària perquè el repositori siga configurat com a bare i puga ser utilitzat com a repositori remot.

Branca de desenvolupament

El primer pas per establir un flux de treball amb Gitflow és crear la branca de desenvolupament develop.

jpuigcerver@fp:~/git_estrategies/remot (main) $ git branch develop
jpuigcerver@fp:~/git_estrategies/remot (main) $ git lga
* ec0e2bd - (0 seconds ago) Commit inicial - Joan Puigcerver (HEAD -> main, develop)

Desenvolupament de funcionalitats

En aquest punt, podem començar a desenvolupar les diferents funcionalitats del projecte en branques independents.

Crearem un repositori local per a cada desenvolupador, simulant que cadascú treballa en el seu dispositiu.

jpuigcerver@fp:~/git_estrategies/remot (main) $ cd ~/git_estrategies
jpuigcerver@fp:~/git_estrategies $ git clone remot anna
Cloning into 'anna'...
done.
jpuigcerver@fp:~/git_estrategies $ git clone remot pau
Cloning into 'pau'...
done.
jpuigcerver@fp:~/git_estrategies $ git clone remot mar
Cloning into 'mar'...
done.
jpuigcerver@fp:~/git_estrategies $ git clone remot carles
Cloning into 'carles'...
done.
jpuigcerver@fp:~/git_estrategies $ tree .
.
├── anna
│   └── README.md
├── carles
│   └── README.md
├── mar
│   └── README.md
├── pau
│   └── README.md
└── remot
    └── README.md

6 directories, 5 files

Cada desenvolupador començarà a treballar en una nova funcionalitat.

  • Anna treballarà en la funcionalitat feature/readme, que consistirà a afegir una descripció del projecte al README.
  • Pau treballarà en la funcionalitat feature/license, que consistirà a afegir una llicència al projecte.
  • Mar treballarà en la funcionalitat feature/author, que consistirà a afegir el nom dels autors del projecte al README.

A partir d'aquest moment, cada desenvolupador treballarà en el seu propi repositori, en la seua pròpia branca de funcionalitat de manera independent i paral·lela.

Important

És important que cada desenvolupador treballe en una única branca per funcionalitat, i que una mateixa branca no es compartisca entre desenvolupadors.

Si existeix la necessitat de compartir una branca, segurament siga perquè la funcionalitat no està ben definida i podrà ser dividida en diverses funcionalitats més xicotetes.

Branca feature/readme

Anna començarà a treballar en la seua funcionalitat feature/readme en el seu repositori local.

Nota

Configurem l'usuari i el correu electrònic per a cada repositori local per simular que cada desenvolupador treballa en el seu propi dispositiu.

També es mostra el nom en el prompt.

anna@fp:~/git_estrategies $ cd ~/git_estrategies/anna
anna@fp:~/git_estrategies/anna (main) $ git config user.name "Anna"
anna@fp:~/git_estrategies/anna (main) $ git config user.email "anna@fpmislata.com"
anna@fp:~/git_estrategies/anna (main) $ git checkout develop
branch 'develop' set up to track 'origin/develop'.
Switched to a new branch 'develop'
anna@fp:~/git_estrategies/anna (develop) $ git checkout -b feature/readme
Switched to a new branch 'feature/readme'
anna@fp:~/git_estrategies/anna (feature/readme) $ echo "Les estratègies de ramificació proporcionen un" >> README.md
anna@fp:~/git_estrategies/anna (feature/readme) $ echo "marc de treball organitzat que facilita la col·laboració" >> README.md
anna@fp:~/git_estrategies/anna (feature/readme) $ echo "entre diferents desenvolupadors en un mateix projecte" >> README.md
anna@fp:~/git_estrategies/anna (feature/readme) $ git commit -a -m "README.md: Descripció"
[feature/readme 502dadb] README.md: Descripció
 1 file changed, 3 insertions(+)
anna@fp:~/git_estrategies/anna (feature/readme) $ echo "" >> README.md
anna@fp:~/git_estrategies/anna (feature/readme) $ echo "La característica principal és la utilització" >> README.md
anna@fp:~/git_estrategies/anna (feature/readme) $ echo "de branques amb un únic propòsit." >> README.md
anna@fp:~/git_estrategies/anna (feature/readme) $ git commit -a -m "README.md: Branques propòsit únic"
[feature/readme ea2559a] README.md: Branques propòsit únic
 1 file changed, 3 insertions(+)
anna@fp:~/git_estrategies/anna (feature/readme) $ git push -u origin feature/readme
branch 'feature/readme' set up to track 'origin/feature/readme'.
To ~/git_estrategies/remot
 * [new branch]      feature/readme -> feature/readme
anna@fp:~/git_estrategies/anna (feature/readme) $ git lga
* ea2559a - (0 seconds ago) README.md: Branques propòsit únic - Anna (HEAD -> feature/readme, origin/feature/readme)
* 502dadb - (0 seconds ago) README.md: Descripció - Anna
* ec0e2bd - (0 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/develop, origin/HEAD, main, develop)

Els passos seguits per Anna són:

  • Crear la branca feature/readme a partir de develop.
  • Realitzar els canvis pertinents.
  • Publicar la branca feature/readme al repositori remot.

Branca feature/license

Pau començarà a treballar en la seua funcionalitat feature/license en el seu repositori local.

pau@fp:~/git_estrategies $ cd ~/git_estrategies/pau
pau@fp:~/git_estrategies/pau (main) $ git config user.name "Pau"
pau@fp:~/git_estrategies/pau (main) $ git config user.email "pau@fpmislata.com"
pau@fp:~/git_estrategies/pau (main) $ git checkout develop
branch 'develop' set up to track 'origin/develop'.
Switched to a new branch 'develop'
pau@fp:~/git_estrategies/pau (develop) $ git checkout -b feature/license
Switched to a new branch 'feature/license'
pau@fp:~/git_estrategies/pau (feature/license) $ echo "" > LICENSE
pau@fp:~/git_estrategies/pau (feature/license) $ echo "## Llicència" >> LICENSE
pau@fp:~/git_estrategies/pau (feature/license) $ echo "CC BY-NC-SA 4.0 DEED - Reconeixement-NoComercial-CompartirIgual 4.0 Internacional" >> LICENSE
pau@fp:~/git_estrategies/pau (feature/license) $ git add LICENSE
pau@fp:~/git_estrategies/pau (feature/license) $ git commit -m "LICENSE: Afegida llicència"
[feature/license b11b498] LICENSE: Afegida llicència
 1 file changed, 3 insertions(+)
 create mode 100644 LICENSE
pau@fp:~/git_estrategies/pau (feature/license) $ echo "" >> LICENSE
pau@fp:~/git_estrategies/pau (feature/license) $ echo "Més informació: https://creativecommons.org/licenses/by-nc-sa/4.0/deed.ca" >> LICENSE
pau@fp:~/git_estrategies/pau (feature/license) $ git commit -a -m "LICENSE: Enllaç a la llicència"
[feature/license c213387] LICENSE: Enllaç a la llicència
 1 file changed, 2 insertions(+)
pau@fp:~/git_estrategies/pau (feature/license) $ git push -u origin feature/license
branch 'feature/license' set up to track 'origin/feature/license'.
To ~/git_estrategies/remot
 * [new branch]      feature/license -> feature/license
pau@fp:~/git_estrategies/pau (feature/license) $ git lga
* c213387 - (0 seconds ago) LICENSE: Enllaç a la llicència - Pau (HEAD -> feature/license, origin/feature/license)
* b11b498 - (0 seconds ago) LICENSE: Afegida llicència - Pau
* ec0e2bd - (1 second ago) Commit inicial - Joan Puigcerver (origin/main, origin/develop, origin/HEAD, main, develop)

Els passos seguits per Pau són:

  • Crear la branca feature/license a partir de develop.
  • Realitzar els canvis pertinents.
  • Publicar la branca feature/license al repositori remot.

Branca feature/author

Mar començarà a treballar en la seua funcionalitat feature/author en el seu repositori local.

mar@fp:~/git_estrategies $ cd ~/git_estrategies/mar
mar@fp:~/git_estrategies/mar (main) $ git config user.name "Mar"
mar@fp:~/git_estrategies/mar (main) $ git config user.email "mar@fpmislata.com"
mar@fp:~/git_estrategies/mar (main) $ git checkout develop
branch 'develop' set up to track 'origin/develop'.
Switched to a new branch 'develop'
mar@fp:~/git_estrategies/mar (develop) $ git checkout -b feature/author
Switched to a new branch 'feature/author'
mar@fp:~/git_estrategies/mar (feature/author) $ echo "" >> README.md
mar@fp:~/git_estrategies/mar (feature/author) $ echo "## Autors" >> README.md
mar@fp:~/git_estrategies/mar (feature/author) $ git commit -a -m "README.md: Secció d'autors"
[feature/author 24be503] README.md: Secció d'autors
 1 file changed, 2 insertions(+)
mar@fp:~/git_estrategies/mar (feature/author) $ echo "- Anna (anna@fpmislata.com)" >> README.md
mar@fp:~/git_estrategies/mar (feature/author) $ git commit -a -m "Autors: Anna"
[feature/author 8683319] Autors: Anna
 1 file changed, 1 insertion(+)
mar@fp:~/git_estrategies/mar (feature/author) $ echo "- Pau (pau@fpmislata.com)" >> README.md
mar@fp:~/git_estrategies/mar (feature/author) $ git commit -a -m "Autors: Pau"
[feature/author 1d5ba44] Autors: Pau
 1 file changed, 1 insertion(+)
mar@fp:~/git_estrategies/mar (feature/author) $ echo "- Mar (mar@fpmislata.com)" >> README.md
mar@fp:~/git_estrategies/mar (feature/author) $ git commit -a -m "Autors: Mar"
[feature/author a216550] Autors: Mar
 1 file changed, 1 insertion(+)
mar@fp:~/git_estrategies/mar (feature/author) $ git push -u origin feature/author
branch 'feature/author' set up to track 'origin/feature/author'.
To ~/git_estrategies/remot
 * [new branch]      feature/author -> feature/author
mar@fp:~/git_estrategies/mar (feature/author) $ git lga
* a216550 - (0 seconds ago) Autors: Mar - Mar (HEAD -> feature/author, origin/feature/author)
* 1d5ba44 - (0 seconds ago) Autors: Pau - Mar
* 8683319 - (0 seconds ago) Autors: Anna - Mar
* 24be503 - (0 seconds ago) README.md: Secció d'autors - Mar
* ec0e2bd - (1 second ago) Commit inicial - Joan Puigcerver (origin/main, origin/develop, origin/HEAD, main, develop)

Els passos seguits per Mar són:

  • Crear la branca feature/author a partir de develop.
  • Realitzar els canvis pertinents.
  • Publicar la branca feature/author al repositori remot.

Integració de les funcionalitats

En aquest punt, les tres funcionalitats han sigut desenvolupades de manera independent, i encara no han segut integrades a la branca de desenvolupament develop.

jpuigcerver@fp:~/git_estrategies $ cd ~/git_estrategies/remot
jpuigcerver@fp:~/git_estrategies/remot (main) $ git lga
* a216550 - (0 seconds ago) Autors: Mar - Mar (feature/author)
* 1d5ba44 - (0 seconds ago) Autors: Pau - Mar
* 8683319 - (0 seconds ago) Autors: Anna - Mar
* 24be503 - (0 seconds ago) README.md: Secció d'autors - Mar
| * c213387 - (0 seconds ago) LICENSE: Enllaç a la llicència - Pau (feature/license)
| * b11b498 - (0 seconds ago) LICENSE: Afegida llicència - Pau
|/  
| * ea2559a - (1 second ago) README.md: Branques propòsit únic - Anna (feature/readme)
| * 502dadb - (1 second ago) README.md: Descripció - Anna
|/  
* ec0e2bd - (1 second ago) Commit inicial - Joan Puigcerver (HEAD -> main, develop)

Preparació del repositori

Pots crear un repositor amb l'estat anterior executant el següent script:

Bash script amb el desenvolupament de les funcionalitats
#!/bin/bash

# Elimina els repositoris si existeixen
if [ -d ~/git_estrategies ]; then
    rm -rf ~/git_estrategies
fi

# Inicialització del repositori remot
mkdir -p ~/git_estrategies/remot
cd ~/git_estrategies/remot
git init
git branch -m main
echo "# Estratègies de ramificació" > README.md
git add README.md
git commit -m "Commit inicial"
git config --bool core.bare true # (1)!

# Inicialització del repositori de desenvolupament
git branch develop

# Clonació del repositori
cd ~/git_estrategies
git clone remot anna
git clone remot pau
git clone remot mar
git clone remot carles

# Desenvolupament de la branca feature/readme
cd ~/git_estrategies/anna
git config user.name "Anna"
git config user.email "anna@fpmislata.com"
git checkout develop
git checkout -b feature/readme
echo "Les estratègies de ramificació proporcionen un" >> README.md
echo "marc de treball organitzat que facilita la col·laboració" >> README.md
echo "entre diferents desenvolupadors en un mateix projecte" >> README.md
git commit -a -m "README.md: Descripció"
echo "" >> README.md
echo "La característica principal és la utilització" >> README.md
echo "de branques amb un únic propòsit." >> README.md
git commit -a -m "README.md: Branques propòsit únic"
git push -u origin feature/readme

# Desenvolupament de la branca feature/license
cd ~/git_estrategies/pau
git config user.name "Pau"
git config user.email "pau@fpmislata.com"
git checkout develop
git checkout -b feature/license
echo "" > LICENSE
echo "## Llicència" >> LICENSE
echo "CC BY-NC-SA 4.0 DEED - Reconeixement-NoComercial-CompartirIgual 4.0 Internacional" >> LICENSE
git add LICENSE
git commit -m "LICENSE: Afegida llicència"
echo "" >> LICENSE
echo "Més informació: https://creativecommons.org/licenses/by-nc-sa/4.0/deed.ca" >> LICENSE
git commit -a -m "LICENSE: Enllaç a la llicència"
git push -u origin feature/license

# Desenvolupament de la branca feature/author
cd ~/git_estrategies/mar
git config user.name "Mar"
git config user.email "mar@fpmislata.com"
git checkout develop
git checkout -b feature/author
echo "" >> README.md
echo "## Autors" >> README.md
git commit -a -m "README.md: Secció d'autors"
echo "- Anna (anna@fpmislata.com)" >> README.md
git commit -a -m "Autors: Anna"
echo "- Pau (pau@fpmislata.com)" >> README.md
git commit -a -m "Autors: Pau"
echo "- Mar (mar@fpmislata.com)" >> README.md
git commit -a -m "Autors: Mar"
git push -u origin feature/author

cd ~/git_estrategies

Anem a veure com integrar les funcionalitats amb la tècnica merge + merge --squash seguint el procés indicat a Integració de les funcionalitats.

Integració de feature/readme

Anna ja ha acabat la seua funcionalitat feature/readme i vol integrar-la a la branca develop.

Els passos que ha de seguir són:

  1. Sincronitzar l'estat del repositori local amb el remot amb git fetch.

    anna@fp:~/git_estrategies $ cd ~/git_estrategies/anna
    anna@fp:~/git_estrategies/anna (feature/readme) $ git fetch
    From ~/git_estrategies/remot
     * [new branch]      feature/author  -> origin/feature/author
     * [new branch]      feature/license -> origin/feature/license
    anna@fp:~/git_estrategies/anna (feature/readme) $ git lga
    * a216550 - (1 second ago) Autors: Mar - Mar (origin/feature/author)
    * 1d5ba44 - (1 second ago) Autors: Pau - Mar
    * 8683319 - (1 second ago) Autors: Anna - Mar
    * 24be503 - (1 second ago) README.md: Secció d'autors - Mar
    | * c213387 - (1 second ago) LICENSE: Enllaç a la llicència - Pau (origin/feature/license)
    | * b11b498 - (1 second ago) LICENSE: Afegida llicència - Pau
    |/  
    | * ea2559a - (2 seconds ago) README.md: Branques propòsit únic - Anna (HEAD -> feature/readme, origin/feature/readme)
    | * 502dadb - (2 seconds ago) README.md: Descripció - Anna
    |/  
    * ec0e2bd - (2 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/develop, origin/HEAD, main, develop)
    
  2. Actualitzar la branca develop amb els canvis del remot.

    En aquest cas, ja està actualitzada.

    anna@fp:~/git_estrategies/anna (feature/readme) $ git checkout develop
    Your branch is up to date with 'origin/develop'.
    Switched to branch 'develop'
    anna@fp:~/git_estrategies/anna (develop) $ git pull --ff-only
    Already up to date.
    
  3. Actualitzar la branca feature/readme amb els canvis develop.

    En aquest cas, ja està actualitzada.

    anna@fp:~/git_estrategies/anna (develop) $ git checkout feature/readme
    Your branch is up to date with 'origin/feature/readme'.
    Switched to branch 'feature/readme'
    anna@fp:~/git_estrategies/anna (feature/readme) $ git merge --no-ff --no-edit develop #(1)!
    Already up to date.
    
    1. L'opció --no-edit evita obrir l'editor de text i deixa el missatge de commit per defecte.
  4. Fusionar la branca feature/readme amb develop.

    anna@fp:~/git_estrategies/anna (feature/readme) $ git checkout develop
    Your branch is up to date with 'origin/develop'.
    Switched to branch 'develop'
    anna@fp:~/git_estrategies/anna (develop) $ git merge --squash feature/readme
    Updating ec0e2bd..ea2559a
    Fast-forward
    Squash commit -- not updating HEAD
     README.md | 6 ++++++
     1 file changed, 6 insertions(+)
    anna@fp:~/git_estrategies/anna (develop) $ git status
    On branch develop
    Your branch is up to date with 'origin/develop'.
    
    Changes to be committed:
      (use "git restore --staged <file>..." to unstage)
        modified:   README.md
    
    anna@fp:~/git_estrategies/anna (develop) $ git diff --staged
    diff --git a/README.md b/README.md
    index 05c1f5b..9e7f142 100644
    --- a/README.md
    +++ b/README.md
    @@ -1 +1,7 @@
     # Estratègies de ramificació
    +Les estratègies de ramificació proporcionen un
    +marc de treball organitzat que facilita la col·laboració
    +entre diferents desenvolupadors en un mateix projecte
    +
    +La característica principal és la utilització
    +de branques amb un únic propòsit.
    anna@fp:~/git_estrategies/anna (develop) $ git commit -m "Merge branch 'feature/readme'"
    [develop 2bc4029] Merge branch 'feature/readme'
     1 file changed, 6 insertions(+)
    anna@fp:~/git_estrategies/anna (develop) $ git lga
    * 2bc4029 - (0 seconds ago) Merge branch 'feature/readme' - Anna (HEAD -> develop)
    | * a216550 - (1 second ago) Autors: Mar - Mar (origin/feature/author)
    | * 1d5ba44 - (1 second ago) Autors: Pau - Mar
    | * 8683319 - (1 second ago) Autors: Anna - Mar
    | * 24be503 - (1 second ago) README.md: Secció d'autors - Mar
    |/  
    | * c213387 - (1 second ago) LICENSE: Enllaç a la llicència - Pau (origin/feature/license)
    | * b11b498 - (1 second ago) LICENSE: Afegida llicència - Pau
    |/  
    | * ea2559a - (2 seconds ago) README.md: Branques propòsit únic - Anna (origin/feature/readme, feature/readme)
    | * 502dadb - (2 seconds ago) README.md: Descripció - Anna
    |/  
    * ec0e2bd - (2 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/develop, origin/HEAD, main)
    
  5. Publicar els canvis de la branca develop al repositori remot.

    anna@fp:~/git_estrategies/anna (develop) $ git push
    To ~/git_estrategies/remot
       ec0e2bd..2bc4029  develop -> develop
    anna@fp:~/git_estrategies/anna (develop) $ git lga
    * 2bc4029 - (0 seconds ago) Merge branch 'feature/readme' - Anna (HEAD -> develop, origin/develop)
    | * a216550 - (1 second ago) Autors: Mar - Mar (origin/feature/author)
    | * 1d5ba44 - (1 second ago) Autors: Pau - Mar
    | * 8683319 - (1 second ago) Autors: Anna - Mar
    | * 24be503 - (1 second ago) README.md: Secció d'autors - Mar
    |/  
    | * c213387 - (1 second ago) LICENSE: Enllaç a la llicència - Pau (origin/feature/license)
    | * b11b498 - (1 second ago) LICENSE: Afegida llicència - Pau
    |/  
    | * ea2559a - (2 seconds ago) README.md: Branques propòsit únic - Anna (origin/feature/readme, feature/readme)
    | * 502dadb - (2 seconds ago) README.md: Descripció - Anna
    |/  
    * ec0e2bd - (2 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    
  6. Eliminar la branca feature/readme del repositori local i del remot.

    anna@fp:~/git_estrategies/anna (develop) $ git branch -D feature/readme
    Deleted branch feature/readme (was ea2559a).
    anna@fp:~/git_estrategies/anna (develop) $ git push origin --delete feature/readme
    To ~/git_estrategies/remot
     - [deleted]         feature/readme
    anna@fp:~/git_estrategies/anna (develop) $ git lga
    * 2bc4029 - (0 seconds ago) Merge branch 'feature/readme' - Anna (HEAD -> develop, origin/develop)
    | * a216550 - (1 second ago) Autors: Mar - Mar (origin/feature/author)
    | * 1d5ba44 - (1 second ago) Autors: Pau - Mar
    | * 8683319 - (1 second ago) Autors: Anna - Mar
    | * 24be503 - (1 second ago) README.md: Secció d'autors - Mar
    |/  
    | * c213387 - (1 second ago) LICENSE: Enllaç a la llicència - Pau (origin/feature/license)
    | * b11b498 - (1 second ago) LICENSE: Afegida llicència - Pau
    |/  
    * ec0e2bd - (2 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    

En aquest punt, la funcionalitat desenvolupada per Anna ha sigut integrada a la branca de desenvolupament develop i pot continuar treballant en altres funcionalitats.

Integració de feature/license

Pau ja ha acabat la seua funcionalitat feature/license i vol integrar-la a la branca develop.

Els passos que ha de seguir són:

  1. Sincronitzar l'estat del repositori local amb el remot amb git fetch.

    pau@fp:~/git_estrategies $ cd ~/git_estrategies/pau
    pau@fp:~/git_estrategies/pau (feature/license) $ git fetch
    From ~/git_estrategies/remot
       ec0e2bd..2bc4029  develop        -> origin/develop
     * [new branch]      feature/author -> origin/feature/author
    pau@fp:~/git_estrategies/pau (feature/license) $ git lga
    * 2bc4029 - (0 seconds ago) Merge branch 'feature/readme' - Anna (origin/develop)
    | * c213387 - (1 second ago) LICENSE: Enllaç a la llicència - Pau (HEAD -> feature/license, origin/feature/license)
    | * b11b498 - (1 second ago) LICENSE: Afegida llicència - Pau
    |/  
    | * a216550 - (1 second ago) Autors: Mar - Mar (origin/feature/author)
    | * 1d5ba44 - (1 second ago) Autors: Pau - Mar
    | * 8683319 - (1 second ago) Autors: Anna - Mar
    | * 24be503 - (1 second ago) README.md: Secció d'autors - Mar
    |/  
    * ec0e2bd - (2 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main, develop)
    
  2. Actualitzar la branca develop amb els canvis del remot.

    pau@fp:~/git_estrategies/pau (feature/license) $ git checkout develop
    Your branch is behind 'origin/develop' by 1 commit, and can be fast-forwarded.
      (use "git pull" to update your local branch)
    Switched to branch 'develop'
    pau@fp:~/git_estrategies/pau (develop) $ git pull --ff-only
    Updating ec0e2bd..2bc4029
    Fast-forward
     README.md | 6 ++++++
     1 file changed, 6 insertions(+)
    pau@fp:~/git_estrategies/pau (develop) $ git lga
    * 2bc4029 - (1 second ago) Merge branch 'feature/readme' - Anna (HEAD -> develop, origin/develop)
    | * c213387 - (2 seconds ago) LICENSE: Enllaç a la llicència - Pau (origin/feature/license, feature/license)
    | * b11b498 - (2 seconds ago) LICENSE: Afegida llicència - Pau
    |/  
    | * a216550 - (2 seconds ago) Autors: Mar - Mar (origin/feature/author)
    | * 1d5ba44 - (2 seconds ago) Autors: Pau - Mar
    | * 8683319 - (2 seconds ago) Autors: Anna - Mar
    | * 24be503 - (2 seconds ago) README.md: Secció d'autors - Mar
    |/  
    * ec0e2bd - (3 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    
  3. Actualitzar la branca feature/license amb els canvis develop.

    pau@fp:~/git_estrategies/pau (develop) $ git checkout feature/license
    Your branch is up to date with 'origin/feature/license'.
    Switched to branch 'feature/license'
    pau@fp:~/git_estrategies/pau (feature/license) $ git merge --no-ff --no-edit develop # (1)!
    Merge made by the 'ort' strategy.
     README.md | 6 ++++++
     1 file changed, 6 insertions(+)
    pau@fp:~/git_estrategies/pau (feature/license) $ git lga
    *   5b6d510 - (0 seconds ago) Merge branch 'develop' into feature/license - Pau (HEAD -> feature/license)
    |\  
    | * 2bc4029 - (1 second ago) Merge branch 'feature/readme' - Anna (origin/develop, develop)
    * | c213387 - (2 seconds ago) LICENSE: Enllaç a la llicència - Pau (origin/feature/license)
    * | b11b498 - (2 seconds ago) LICENSE: Afegida llicència - Pau
    |/  
    | * a216550 - (2 seconds ago) Autors: Mar - Mar (origin/feature/author)
    | * 1d5ba44 - (2 seconds ago) Autors: Pau - Mar
    | * 8683319 - (2 seconds ago) Autors: Anna - Mar
    | * 24be503 - (2 seconds ago) README.md: Secció d'autors - Mar
    |/  
    * ec0e2bd - (3 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    
    1. L'opció --no-edit evita obrir l'editor de text i deixa el missatge de commit per defecte.
  4. Fusionar la branca feature/license amb develop.

    pau@fp:~/git_estrategies/pau (feature/license) $ git checkout develop
    Your branch is up to date with 'origin/develop'.
    Switched to branch 'develop'
    pau@fp:~/git_estrategies/pau (develop) $ git merge --squash feature/license
    Updating 2bc4029..5b6d510
    Fast-forward
    Squash commit -- not updating HEAD
     LICENSE | 5 +++++
     1 file changed, 5 insertions(+)
     create mode 100644 LICENSE
    pau@fp:~/git_estrategies/pau (develop) $ git status
    On branch develop
    Your branch is up to date with 'origin/develop'.
    
    Changes to be committed:
      (use "git restore --staged <file>..." to unstage)
        new file:   LICENSE
    
    pau@fp:~/git_estrategies/pau (develop) $ git diff --staged
    diff --git a/LICENSE b/LICENSE
    new file mode 100644
    index 0000000..809d714
    --- /dev/null
    +++ b/LICENSE
    @@ -0,0 +1,5 @@
    +
    +## Llicència
    +CC BY-NC-SA 4.0 DEED - Reconeixement-NoComercial-CompartirIgual 4.0 Internacional
    +
    +Més informació: https://creativecommons.org/licenses/by-nc-sa/4.0/deed.ca
    pau@fp:~/git_estrategies/pau (develop) $ git commit -m "Merge branch 'feature/license'"
    [develop b7bf0a5] Merge branch 'feature/license'
     1 file changed, 5 insertions(+)
     create mode 100644 LICENSE
    pau@fp:~/git_estrategies/pau (develop) $ git lga
    * b7bf0a5 - (0 seconds ago) Merge branch 'feature/license' - Pau (HEAD -> develop)
    | *   5b6d510 - (0 seconds ago) Merge branch 'develop' into feature/license - Pau (feature/license)
    | |\  
    | |/  
    |/|   
    * | 2bc4029 - (1 second ago) Merge branch 'feature/readme' - Anna (origin/develop)
    | * c213387 - (2 seconds ago) LICENSE: Enllaç a la llicència - Pau (origin/feature/license)
    | * b11b498 - (2 seconds ago) LICENSE: Afegida llicència - Pau
    |/  
    | * a216550 - (2 seconds ago) Autors: Mar - Mar (origin/feature/author)
    | * 1d5ba44 - (2 seconds ago) Autors: Pau - Mar
    | * 8683319 - (2 seconds ago) Autors: Anna - Mar
    | * 24be503 - (2 seconds ago) README.md: Secció d'autors - Mar
    |/  
    * ec0e2bd - (3 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    
  5. Publicar els canvis de la branca develop al repositori remot.

    pau@fp:~/git_estrategies/pau (develop) $ git push
    To ~/git_estrategies/remot
       2bc4029..b7bf0a5  develop -> develop
    pau@fp:~/git_estrategies/pau (develop) $ git lga
    * b7bf0a5 - (0 seconds ago) Merge branch 'feature/license' - Pau (HEAD -> develop, origin/develop)
    | *   5b6d510 - (0 seconds ago) Merge branch 'develop' into feature/license - Pau (feature/license)
    | |\  
    | |/  
    |/|   
    * | 2bc4029 - (1 second ago) Merge branch 'feature/readme' - Anna
    | * c213387 - (2 seconds ago) LICENSE: Enllaç a la llicència - Pau (origin/feature/license)
    | * b11b498 - (2 seconds ago) LICENSE: Afegida llicència - Pau
    |/  
    | * a216550 - (2 seconds ago) Autors: Mar - Mar (origin/feature/author)
    | * 1d5ba44 - (2 seconds ago) Autors: Pau - Mar
    | * 8683319 - (2 seconds ago) Autors: Anna - Mar
    | * 24be503 - (2 seconds ago) README.md: Secció d'autors - Mar
    |/  
    * ec0e2bd - (3 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    
  6. Eliminar la branca feature/license del repositori local i del remot.

    pau@fp:~/git_estrategies/pau (develop) $ git branch -D feature/license
    Deleted branch feature/license (was 5b6d510).
    pau@fp:~/git_estrategies/pau (develop) $ git push origin --delete feature/license
    To ~/git_estrategies/remot
     - [deleted]         feature/license
    pau@fp:~/git_estrategies/pau (develop) $ git lga
    * b7bf0a5 - (0 seconds ago) Merge branch 'feature/license' - Pau (HEAD -> develop, origin/develop)
    * 2bc4029 - (1 second ago) Merge branch 'feature/readme' - Anna
    | * a216550 - (2 seconds ago) Autors: Mar - Mar (origin/feature/author)
    | * 1d5ba44 - (2 seconds ago) Autors: Pau - Mar
    | * 8683319 - (2 seconds ago) Autors: Anna - Mar
    | * 24be503 - (2 seconds ago) README.md: Secció d'autors - Mar
    |/  
    * ec0e2bd - (3 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    

Integració de feature/author

Mar ja ha acabat la seua funcionalitat feature/author i vol integrar-la a la branca develop.

Els passos que ha de seguir són:

  1. Sincronitzar l'estat del repositori local amb el remot amb git fetch.

    mar@fp:~/git_estrategies $ cd ~/git_estrategies/mar
    mar@fp:~/git_estrategies/mar (feature/author) $ git fetch
    From ~/git_estrategies/remot
       ec0e2bd..b7bf0a5  develop    -> origin/develop
    mar@fp:~/git_estrategies/mar (feature/author) $ git lga
    * b7bf0a5 - (0 seconds ago) Merge branch 'feature/license' - Pau (origin/develop)
    * 2bc4029 - (1 second ago) Merge branch 'feature/readme' - Anna
    | * a216550 - (2 seconds ago) Autors: Mar - Mar (HEAD -> feature/author, origin/feature/author)
    | * 1d5ba44 - (2 seconds ago) Autors: Pau - Mar
    | * 8683319 - (2 seconds ago) Autors: Anna - Mar
    | * 24be503 - (2 seconds ago) README.md: Secció d'autors - Mar
    |/  
    * ec0e2bd - (3 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main, develop)
    
  2. Actualitzar la branca develop amb els canvis del remot.

    mar@fp:~/git_estrategies/mar (feature/author) $ git checkout develop
    Your branch is behind 'origin/develop' by 2 commits, and can be fast-forwarded.
      (use "git pull" to update your local branch)
    Switched to branch 'develop'
    mar@fp:~/git_estrategies/mar (develop) $ git pull --ff-only
    Updating ec0e2bd..b7bf0a5
    Fast-forward
     LICENSE   | 5 +++++
     README.md | 6 ++++++
     2 files changed, 11 insertions(+)
     create mode 100644 LICENSE
    mar@fp:~/git_estrategies/mar (develop) $ git lga
    * b7bf0a5 - (1 second ago) Merge branch 'feature/license' - Pau (HEAD -> develop, origin/develop)
    * 2bc4029 - (2 seconds ago) Merge branch 'feature/readme' - Anna
    | * a216550 - (3 seconds ago) Autors: Mar - Mar (origin/feature/author, feature/author)
    | * 1d5ba44 - (3 seconds ago) Autors: Pau - Mar
    | * 8683319 - (3 seconds ago) Autors: Anna - Mar
    | * 24be503 - (3 seconds ago) README.md: Secció d'autors - Mar
    |/  
    * ec0e2bd - (4 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    
  3. Actualitzar la branca feature/author amb els canvis develop.

    Info

    En aquest cas, han sorgit conflictes que hem hagut de solucionar manualment.

    mar@fp:~/git_estrategies/mar (develop) $ git checkout feature/author
    Your branch is up to date with 'origin/feature/author'.
    Switched to branch 'feature/author'
    mar@fp:~/git_estrategies/mar (feature/author) $ git merge --no-ff --no-edit develop # (1)!
    Auto-merging README.md
    CONFLICT (content): Merge conflict in README.md
    Automatic merge failed; fix conflicts and then commit the result.
    mar@fp:~/git_estrategies/mar (feature/author|MERGING) $ vim README.md # (2)!
    mar@fp:~/git_estrategies/mar (feature/author|MERGING) $ git add README.md
    mar@fp:~/git_estrategies/mar (feature/author|MERGING) $ git commit --no-edit # (1)!
    [feature/author 72afb5a] Merge branch 'develop' into feature/author
    mar@fp:~/git_estrategies/mar (feature/author) $ git lga
    *   72afb5a - (0 seconds ago) Merge branch 'develop' into feature/author - Mar (HEAD -> feature/author)
    |\  
    | * b7bf0a5 - (1 second ago) Merge branch 'feature/license' - Pau (origin/develop, develop)
    | * 2bc4029 - (2 seconds ago) Merge branch 'feature/readme' - Anna
    * | a216550 - (3 seconds ago) Autors: Mar - Mar (origin/feature/author)
    * | 1d5ba44 - (3 seconds ago) Autors: Pau - Mar
    * | 8683319 - (3 seconds ago) Autors: Anna - Mar
    * | 24be503 - (3 seconds ago) README.md: Secció d'autors - Mar
    |/  
    * ec0e2bd - (4 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    
    1. L'opció --no-edit evita obrir l'editor de text i deixa el missatge de commit per defecte.
    2. S'han esborrat les marques de conflicte manualment.
  4. Fusionar la branca feature/author amb develop.

    mar@fp:~/git_estrategies/mar (feature/author) $ git checkout develop
    Your branch is up to date with 'origin/develop'.
    Switched to branch 'develop'
    mar@fp:~/git_estrategies/mar (develop) $ git merge --squash feature/author
    Updating b7bf0a5..72afb5a
    Fast-forward
    Squash commit -- not updating HEAD
     README.md | 5 +++++
     1 file changed, 5 insertions(+)
    mar@fp:~/git_estrategies/mar (develop) $ git status
    On branch develop
    Your branch is up to date with 'origin/develop'.
    
    Changes to be committed:
      (use "git restore --staged <file>..." to unstage)
        modified:   README.md
    
    mar@fp:~/git_estrategies/mar (develop) $ git diff --staged
    diff --git a/README.md b/README.md
    index 9e7f142..416ca41 100644
    --- a/README.md
    +++ b/README.md
    @@ -1,4 +1,9 @@
     # Estratègies de ramificació
    +
    +## Autors
    +- Anna (anna@fpmislata.com)
    +- Pau (pau@fpmislata.com)
    +- Mar (mar@fpmislata.com)
     Les estratègies de ramificació proporcionen un
     marc de treball organitzat que facilita la col·laboració
     entre diferents desenvolupadors en un mateix projecte
    mar@fp:~/git_estrategies/mar (develop) $ git commit -m "Merge branch 'feature/author'"
    [develop f9152dc] Merge branch 'feature/author'
     1 file changed, 5 insertions(+)
    mar@fp:~/git_estrategies/mar (develop) $ git lga
    * f9152dc - (0 seconds ago) Merge branch 'feature/author' - Mar (HEAD -> develop)
    | *   72afb5a - (0 seconds ago) Merge branch 'develop' into feature/author - Mar (feature/author)
    | |\  
    | |/  
    |/|   
    * | b7bf0a5 - (1 second ago) Merge branch 'feature/license' - Pau (origin/develop)
    * | 2bc4029 - (2 seconds ago) Merge branch 'feature/readme' - Anna
    | * a216550 - (3 seconds ago) Autors: Mar - Mar (origin/feature/author)
    | * 1d5ba44 - (3 seconds ago) Autors: Pau - Mar
    | * 8683319 - (3 seconds ago) Autors: Anna - Mar
    | * 24be503 - (3 seconds ago) README.md: Secció d'autors - Mar
    |/  
    * ec0e2bd - (4 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    
  5. Publicar els canvis de la branca develop al repositori remot.

    mar@fp:~/git_estrategies/mar (develop) $ git push
    To ~/git_estrategies/remot
       b7bf0a5..f9152dc  develop -> develop
    mar@fp:~/git_estrategies/mar (develop) $ git lga
    * f9152dc - (0 seconds ago) Merge branch 'feature/author' - Mar (HEAD -> develop, origin/develop)
    | *   72afb5a - (0 seconds ago) Merge branch 'develop' into feature/author - Mar (feature/author)
    | |\  
    | |/  
    |/|   
    * | b7bf0a5 - (1 second ago) Merge branch 'feature/license' - Pau
    * | 2bc4029 - (2 seconds ago) Merge branch 'feature/readme' - Anna
    | * a216550 - (3 seconds ago) Autors: Mar - Mar (origin/feature/author)
    | * 1d5ba44 - (3 seconds ago) Autors: Pau - Mar
    | * 8683319 - (3 seconds ago) Autors: Anna - Mar
    | * 24be503 - (3 seconds ago) README.md: Secció d'autors - Mar
    |/  
    * ec0e2bd - (4 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    
  6. Eliminar la branca feature/author del repositori local i del remot.

    mar@fp:~/git_estrategies/mar (develop) $ git branch -D feature/author
    Deleted branch feature/author (was 72afb5a).
    mar@fp:~/git_estrategies/mar (develop) $ git push origin --delete feature/author
    To ~/git_estrategies/remot
     - [deleted]         feature/author
    mar@fp:~/git_estrategies/mar (develop) $ git lga
    * f9152dc - (0 seconds ago) Merge branch 'feature/author' - Mar (HEAD -> develop, origin/develop)
    * b7bf0a5 - (1 second ago) Merge branch 'feature/license' - Pau
    * 2bc4029 - (2 seconds ago) Merge branch 'feature/readme' - Anna
    * ec0e2bd - (4 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    

Llançament de la versió 1.0.0

Anna és l'encarregada de preparar el llançament de la versió 1.0.0.

Els passos que ha de seguir són:

  1. Actualitzar la branca develop amb els canvis del remot.

    anna@fp:~/git_estrategies $ cd ~/git_estrategies/anna
    anna@fp:~/git_estrategies/anna (develop) $ git checkout develop
    Your branch is up to date with 'origin/develop'.
    Already on 'develop'
    anna@fp:~/git_estrategies/anna (develop) $ git fetch --prune
    From ~/git_estrategies/remot
     - [deleted]         (none)     -> origin/feature/author
     - [deleted]         (none)     -> origin/feature/license
       2bc4029..f9152dc  develop    -> origin/develop
    anna@fp:~/git_estrategies/anna (develop) $ git pull --ff-only
    Updating 2bc4029..f9152dc
    Fast-forward
     LICENSE   | 5 +++++
     README.md | 5 +++++
     2 files changed, 10 insertions(+)
     create mode 100644 LICENSE
    anna@fp:~/git_estrategies/anna (develop) $ git lga
    * f9152dc - (0 seconds ago) Merge branch 'feature/author' - Mar (HEAD -> develop, origin/develop)
    * b7bf0a5 - (1 second ago) Merge branch 'feature/license' - Pau
    * 2bc4029 - (2 seconds ago) Merge branch 'feature/readme' - Anna
    * ec0e2bd - (4 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    
  2. Crear la branca de llançament release/v1.0.0 a partir de la branca develop.

    anna@fp:~/git_estrategies/anna (develop) $ git checkout -b release/v1.0.0
    Switched to a new branch 'release/v1.0.0'
    anna@fp:~/git_estrategies/anna (release/v1.0.0) $ git lga
    * f9152dc - (0 seconds ago) Merge branch 'feature/author' - Mar (HEAD -> release/v1.0.0, origin/develop, develop)
    * b7bf0a5 - (1 second ago) Merge branch 'feature/license' - Pau
    * 2bc4029 - (2 seconds ago) Merge branch 'feature/readme' - Anna
    * ec0e2bd - (4 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    
  3. Realitzar les tasques necessàries per a preparar el llançament de la versió 1.0.0.

    anna@fp:~/git_estrategies/anna (release/v1.0.0) $ echo "v1.0.0" > VERSION
    anna@fp:~/git_estrategies/anna (release/v1.0.0) $ git add VERSION
    anna@fp:~/git_estrategies/anna (release/v1.0.0) $ git commit -m "Publicada versió: v1.0.0"
    [release/v1.0.0 2c075dd] Publicada versió: v1.0.0
     1 file changed, 1 insertion(+)
     create mode 100644 VERSION
    anna@fp:~/git_estrategies/anna (release/v1.0.0) $ git lga
    * 2c075dd - (0 seconds ago) Publicada versió: v1.0.0 - Anna (HEAD -> release/v1.0.0)
    * f9152dc - (0 seconds ago) Merge branch 'feature/author' - Mar (origin/develop, develop)
    * b7bf0a5 - (1 second ago) Merge branch 'feature/license' - Pau
    * 2bc4029 - (2 seconds ago) Merge branch 'feature/readme' - Anna
    * ec0e2bd - (4 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    
  4. Integrar aquesta branca a la branca de desenvolupament develop i publicar-la.

    anna@fp:~/git_estrategies/anna (release/v1.0.0) $ git checkout develop
    Your branch is up to date with 'origin/develop'.
    Switched to branch 'develop'
    anna@fp:~/git_estrategies/anna (develop) $ git merge --ff-only release/v1.0.0
    Updating f9152dc..2c075dd
    Fast-forward
     VERSION | 1 +
     1 file changed, 1 insertion(+)
     create mode 100644 VERSION
    anna@fp:~/git_estrategies/anna (develop) $ git push
    To ~/git_estrategies/remot
       f9152dc..2c075dd  develop -> develop
    anna@fp:~/git_estrategies/anna (develop) $ git lga
    * 2c075dd - (0 seconds ago) Publicada versió: v1.0.0 - Anna (HEAD -> develop, origin/develop, release/v1.0.0)
    * f9152dc - (0 seconds ago) Merge branch 'feature/author' - Mar
    * b7bf0a5 - (1 second ago) Merge branch 'feature/license' - Pau
    * 2bc4029 - (2 seconds ago) Merge branch 'feature/readme' - Anna
    * ec0e2bd - (4 seconds ago) Commit inicial - Joan Puigcerver (origin/main, origin/HEAD, main)
    
  5. Integrar aquesta branca a la branca principal main i publicar els canvis.

    anna@fp:~/git_estrategies/anna (develop) $ git checkout main
    Your branch is up to date with 'origin/main'.
    Switched to branch 'main'
    anna@fp:~/git_estrategies/anna (main) $ git merge --ff-only release/v1.0.0
    Updating ec0e2bd..2c075dd
    Fast-forward
     LICENSE   |  5 +++++
     README.md | 11 +++++++++++
     VERSION   |  1 +
     3 files changed, 17 insertions(+)
     create mode 100644 LICENSE
     create mode 100644 VERSION
    anna@fp:~/git_estrategies/anna (main) $ git push
    To ~/git_estrategies/remot
       ec0e2bd..2c075dd  main -> main
    anna@fp:~/git_estrategies/anna (main) $ git lga
    * 2c075dd - (0 seconds ago) Publicada versió: v1.0.0 - Anna (HEAD -> main, origin/main, origin/develop, origin/HEAD, release/v1.0.0, develop)
    * f9152dc - (0 seconds ago) Merge branch 'feature/author' - Mar
    * b7bf0a5 - (1 second ago) Merge branch 'feature/license' - Pau
    * 2bc4029 - (2 seconds ago) Merge branch 'feature/readme' - Anna
    * ec0e2bd - (4 seconds ago) Commit inicial - Joan Puigcerver
    
  6. Crear i publicar una etiqueta amb la versió 1.0.0.

    anna@fp:~/git_estrategies/anna (main) $ git tag v1.0.0
    anna@fp:~/git_estrategies/anna (main) $ git push --tags
    To ~/git_estrategies/remot
     * [new tag]         v1.0.0 -> v1.0.0
    anna@fp:~/git_estrategies/anna (main) $ git lga
    * 2c075dd - (1 second ago) Publicada versió: v1.0.0 - Anna (HEAD -> main, tag: v1.0.0, origin/main, origin/develop, origin/HEAD, release/v1.0.0, develop)
    * f9152dc - (1 second ago) Merge branch 'feature/author' - Mar
    * b7bf0a5 - (2 seconds ago) Merge branch 'feature/license' - Pau
    * 2bc4029 - (3 seconds ago) Merge branch 'feature/readme' - Anna
    * ec0e2bd - (5 seconds ago) Commit inicial - Joan Puigcerver
    
  7. Eliminar la branca de llançament.

    anna@fp:~/git_estrategies/anna (main) $ git branch -D release/v1.0.0
    Deleted branch release/v1.0.0 (was 2c075dd).
    anna@fp:~/git_estrategies/anna (main) $ git push origin --delete release/v1.0.0
    error: unable to delete 'release/v1.0.0': remote ref does not exist
    error: failed to push some refs to '~/git_estrategies/remot'
    anna@fp:~/git_estrategies/anna (main) $ git lga
    * 2c075dd - (1 second ago) Publicada versió: v1.0.0 - Anna (HEAD -> main, tag: v1.0.0, origin/main, origin/develop, origin/HEAD, develop)
    * f9152dc - (1 second ago) Merge branch 'feature/author' - Mar
    * b7bf0a5 - (2 seconds ago) Merge branch 'feature/license' - Pau
    * 2bc4029 - (3 seconds ago) Merge branch 'feature/readme' - Anna
    * ec0e2bd - (5 seconds ago) Commit inicial - Joan Puigcerver
    

Estat final

merge + merge --squash

jpuigcerver@fp:~/git_estrategies $ cd ~/git_estrategies/remot
jpuigcerver@fp:~/git_estrategies/remot (main) $ git lga
* 2c075dd - (1 second ago) Publicada versió: v1.0.0 - Anna (HEAD -> main, tag: v1.0.0, develop)
* f9152dc - (1 second ago) Merge branch 'feature/author' - Mar
* b7bf0a5 - (2 seconds ago) Merge branch 'feature/license' - Pau
* 2bc4029 - (3 seconds ago) Merge branch 'feature/readme' - Anna
* ec0e2bd - (5 seconds ago) Commit inicial - Joan Puigcerver

merge --no-ff

jpuigcerver@fp:~/git_estrategies $ cd ~/git_estrategies/remot
jpuigcerver@fp:~/git_estrategies/remot (main) $ git lga
* 62a0575 - (1 second ago) Publicada versió: v1.0.0 - Anna (HEAD -> main, tag: v1.0.0, develop)
*   457a8ec - (1 second ago) Merge branch 'feature/author' into develop - Mar
|\  
| * fee598f - (2 seconds ago) Autors: Mar - Mar
| * 91051a8 - (2 seconds ago) Autors: Pau - Mar
| * 9d2e45e - (2 seconds ago) Autors: Anna - Mar
| * 2386be4 - (2 seconds ago) README.md: Secció d'autors - Mar
* |   ab97fda - (1 second ago) Merge branch 'feature/license' into develop - Pau
|\ \  
| * | d0ac96b - (2 seconds ago) LICENSE: Enllaç a la llicència - Pau
| * | d92ab12 - (2 seconds ago) LICENSE: Afegida llicència - Pau
| |/  
* |   b1643d0 - (2 seconds ago) Merge branch 'feature/readme' into develop - Anna
|\ \  
| |/  
|/|   
| * 4497a8a - (2 seconds ago) README.md: Branques propòsit únic - Anna
| * 550b032 - (2 seconds ago) README.md: Descripció - Anna
|/  
* 8073f1b - (3 seconds ago) Commit inicial - Joan Puigcerver

rebase

jpuigcerver@fp:~/git_estrategies $ cd ~/git_estrategies/remot
jpuigcerver@fp:~/git_estrategies/remot (main) $ git lga
* b65dd58 - (0 seconds ago) Publicada versió: v1.0.0 - Anna (HEAD -> main, tag: v1.0.0, develop)
* 52b7a9f - (1 second ago) Autors: Mar - Mar
* 08b5ed9 - (1 second ago) Autors: Pau - Mar
* 9dd2d3f - (1 second ago) Autors: Anna - Mar
* 68ec029 - (1 second ago) README.md: Secció d'autors - Mar
* 3437876 - (1 second ago) LICENSE: Enllaç a la llicència - Pau
* 3b78f7c - (1 second ago) LICENSE: Afegida llicència - Pau
* ef69234 - (1 second ago) README.md: Branques propòsit únic - Anna
* 08d5044 - (2 seconds ago) README.md: Descripció - Anna
* 76e3984 - (2 seconds ago) Commit inicial - Joan Puigcerver

rebase + merge --no-ff

jpuigcerver@fp:~/git_estrategies $ cd ~/git_estrategies/remot
jpuigcerver@fp:~/git_estrategies/remot (main) $ git lga
* 2e5055d - (1 second ago) Publicada versió: v1.0.0 - Anna (HEAD -> main, tag: v1.0.0, develop)
*   819768e - (1 second ago) Merge branch 'feature/author' into develop - Mar
|\  
| * 6a55891 - (2 seconds ago) Autors: Mar - Mar
| * 6378ec5 - (2 seconds ago) Autors: Pau - Mar
| * d3ba434 - (2 seconds ago) Autors: Anna - Mar
| * bc83183 - (2 seconds ago) README.md: Secció d'autors - Mar
|/  
*   cd61062 - (2 seconds ago) Merge branch 'feature/license' into develop - Pau
|\  
| * 1deca93 - (2 seconds ago) LICENSE: Enllaç a la llicència - Pau
| * 8e49ffe - (2 seconds ago) LICENSE: Afegida llicència - Pau
|/  
*   b88863d - (2 seconds ago) Merge branch 'feature/readme' into develop - Anna
|\  
| * 89cd46e - (2 seconds ago) README.md: Branques propòsit únic - Anna
| * c449135 - (2 seconds ago) README.md: Descripció - Anna
|/  
* ae3c31e - (3 seconds ago) Commit inicial - Joan Puigcerver

Comentaris