Salta el contingut
 

Exercici: Git a IntelliJ

Autor: Joan Puigcerver Ibáñez

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

Llicència: CC BY-NC-SA 4.0

(Reconeixement - NoComercial - CompartirIgual) 🅭

Objectius

L'objectiu d'aquesta pràctica és utilitzar la integració de Git dins de l'entorn de desenvolupament IntelliJ IDEA.

Requisits

Per poder realitzar la pràctica, cal:

Advertència

Si no ho eres, cal que tramites la tasca "Usuari de GitHub" a Aules

Repositori

Important

En aquesta tasca cal utilitzar el repositori CognomNom-ED creat en el material Integració Git amb IntelliJ creat en l'organització del mòdul.

Organització fpmislata-dam1s-ed.

Organització fpmislata-daw1-ed.

Exercici: BasicOperations

Tenim el següent codi, que mostra per pantalla una matriu amb les taules de multiplicar.

BasicOperations.java
package ud2.exercises;

import java.util.Scanner;
import java.util.Locale;

public class BasicOperations {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in).useLocale(Locale.US);
        int a = in.nextInt();
        int b = in.nextInt();
    }
}

De moment, aquest programa demana a l'usuari dos números, a i b.

Cal modificar el programa perquè realitze les següents operacions:

  • Suma
  • Resta
  • Multiplicació
  • Divisió
  • Mòdul o residu

Anem a realitzar aquesta implementació en diferents branques de Git.

Passos

En aquesta pràctica podeu realitzar les tasques mitjançant la consola o mitjançant les opcions que ens proporciona IntelliJ.

Advertència

Tingueu en compte les següents consideracions:

  • Utilitzeu exactament el mateix nom de les branques.
  • Utilitzeu exactament el mateix missatge per als commits.
    • Deixeu el nom per defecte dels commits quan feu merge o rebase.
  • Feu un push sols quan s'indique en l'enunciat.

Has de realitzar els següents passos en el repositori de Git:

  1. Situa't a la branca main.
  2. Crea la branca operacions/backup. Aquesta branca servirà per indicar-nos el punt de partida de l'exercici, per poder tornar enrere fàcilment.

  3. Crear el package ud2.exercises.

    • Aquest package ha d'estar situat dins de la carpeta src/main/java.
  4. Fes el següent canvi a la branca main:

    • Afegeix el fitxer BasicOperations.java al package ud2.exercises.
    • Crea un commit amb el missatge: Afegit BasicOperations
    BasicOperations.java
    package ud2.exercises;
    
    import java.util.Scanner;
    import java.util.Locale;
    
    public class BasicOperations {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in).useLocale(Locale.US);
            int a = in.nextInt();
            int b = in.nextInt();
        }
    }
    
  5. Publica la branca main al repositori remot.

  6. Crea la branques:

    • operacions/suma.
    • operacions/resta.
    • operacions/multiplicacio.
    • operacions/divisio.
  7. Situa't en cadascuna de les branques i fes els següents canvis.

    • Publica la branca al repositori remot després de cada canvi.

Missatge del commit: Operació de suma

diff --git a/BasicOperations.java b/BasicOperations.java
index 7fb0359..b64063a 100644
--- a/BasicOperations.java
+++ b/BasicOperations.java
@@ -8,5 +8,9 @@ public class BasicOperations {
         Scanner in = new Scanner(System.in).useLocale(Locale.US);
         int a = in.nextInt();
         int b = in.nextInt();
+
+        int suma = a + b;
+
+        System.out.println("Suma: " + suma);
     }
 }

Missatge del commit: Operació de resta

diff --git a/BasicOperations.java b/BasicOperations.java
index 7fb0359..ab2e3cb 100644
--- a/BasicOperations.java
+++ b/BasicOperations.java
@@ -8,5 +8,9 @@ public class BasicOperations {
         Scanner in = new Scanner(System.in).useLocale(Locale.US);
         int a = in.nextInt();
         int b = in.nextInt();
+
+        int resta = a - b;
+
+        System.out.println("Resta: " + resta);
     }
 }

Missatge del commit: Operació de multiplicació

diff --git a/BasicOperations.java b/BasicOperations.java
index 7fb0359..236bc8b 100644
--- a/BasicOperations.java
+++ b/BasicOperations.java
@@ -8,5 +8,9 @@ public class BasicOperations {
         Scanner in = new Scanner(System.in).useLocale(Locale.US);
         int a = in.nextInt();
         int b = in.nextInt();
+
+        int multiplicacio = a * b;
+
+        System.out.println("Multiplicació: " + multiplicacio);
     }
 }

Missatge del commit: Operació de divisió

diff --git a/BasicOperations.java b/BasicOperations.java
index 7fb0359..bbecd15 100644
--- a/BasicOperations.java
+++ b/BasicOperations.java
@@ -8,5 +8,9 @@ public class BasicOperations {
         Scanner in = new Scanner(System.in).useLocale(Locale.US);
         int a = in.nextInt();
         int b = in.nextInt();
+
+        int divisio = a / b;
+
+        System.out.println("Divisió: " + divisio);
     }
 }
  1. Publica totes les branques al repositori remot.
  2. Fusiona totes les branques a la branca main de manera que la història dels commits siga lineal.

    Notice

    Fixa't en el resultat final a l'hora de resoldre els conflictes.

    Important

    No tornes a publicar cada branca al repositori remot.

  3. Publica (push) els canvis realitzats a la branca main.

  4. Elimina les branques locals creades i les branques remotes associades.

Resultat final

El resultat final del fitxer BasicOperations.java hauria de ser:

BasicOperations.java
package ud2.exercises;

import java.util.Scanner;
import java.util.Locale;

public class BasicOperations {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in).useLocale(Locale.US);
        int a = in.nextInt();
        int b = in.nextInt();

        int suma = a + b;
        int resta = a - b;
        int multiplicacio = a * b;
        int divisio = a / b;

        System.out.println("Suma: " + suma);
        System.out.println("Resta: " + resta);
        System.out.println("Multiplicació: " + multiplicacio);
        System.out.println("Divisió: " + divisio);
    }
}
jpuigcerver@fp:~/IdeaProjects/PuigcerverJoan-ED (main) $ git lga
* d5be17f - (1 second ago) Operació divisió - Joan Puigcerver (HEAD -> main, origin/main)
* 37f5de0 - (1 second ago) Operació multiplicació - Joan Puigcerver
* 7e844e3 - (1 second ago) Operació resta - Joan Puigcerver
* 076bda0 - (2 seconds ago) Operació suma - Joan Puigcerver (origin/operations/suma)
| * 07ab4a4 - (1 second ago) Operació divisió - Joan Puigcerver (origin/operations/divisio)
|/  
| * d0926ee - (1 second ago) Operació multiplicació - Joan Puigcerver (origin/operations/multiplicacio)
|/  
| * 8320a2b - (1 second ago) Operació resta - Joan Puigcerver (origin/operations/resta)
|/  
* 6464e1e - (2 seconds ago) Afegit BasicOperations - Joan Puigcerver

...

Tornar a començar

Si durant la pràctica s'enganyeu i voleu tornar enrere, podeu eliminar els commits realitzats.

Aquesta part s'estudiarà més a fons en la 2a avaluació, però vos deixe unes indicacions.

Per eliminar un commit, heu de llevar-li totes les referències. Si un commit no està associat a cap branca, s'eliminarà del repositori.

Podeu realitzar les següents accions.

  • Eliminar les branques locals: Podeu eliminar les branques locals creades.

    git branch -D <branch_name>
    

    Example

    Eliminem les branques locals.

    $ git branch -D operacions/suma
    $ git branch -D operacions/resta
    $ git branch -D operacions/multiplicacio
    $ git branch -D operacions/divisio
    

    Danger

    No elimineu la branca main o master.

  • Eliminar les branques remotes: Podeu eliminar les branques remotes.

    git push -d origin <branch_name>
    

    Example

    Eliminem les branques remotes.

    $ git push -d origin operacions/suma
    $ git push -d origin operacions/resta
    $ git push -d origin operacions/multiplicacio
    $ git push -d origin operacions/divisio
    
  • Moure la referència de la branca principal a l'inici de l'exercici: Moure enrere la referència de la branca main a la branca operacions/backup.

    git reset --hard <ref>
    

    Example

    $ git reset --hard operacions/backup
    
  • Moure una branca remota: Després d'haver mogut la branca local, podeu moure la branca remota a la mateixa posició amb:

    git push -f
    

    Example

    Actualitzem la branca remota origin/main a la mateixa posició que la branca local main.

    $ git checkout main
    $ git push -f