CodeGym /Java Blog /Random-IT /Un abbinamento perfetto: Git e IntelliJ IDEA
John Squirrels
Livello 41
San Francisco

Un abbinamento perfetto: Git e IntelliJ IDEA

Pubblicato nel gruppo Random-IT
Attenendosi alla tradizione consolidata, vi saluto come futuri ingegneri del software senior. Una partita fatta in paradiso: Git e IntelliJ IDEA - 1L'articolo di oggi è la logica estensione del mio articolo su Git . Nell'articolo su Git, ho descritto come lavorare con Git sulla riga di comando. Oggi ti mostrerò come fare tutto in IntelliJ IDEA. All'inizio del mio viaggio come sviluppatore, usavo la riga di comando e pensavo di non aver bisogno di una GUI per questo. Dopotutto, tutto era chiaro così com'era... Ma è stato così fino al momento in cui ho iniziato a usare Git in IntelliJ IDEA... Fin dall'inizio, voglio dire che sto descrivendo la mia esperienza personale. Esistono diversi modi per risolvere qualsiasi problema in IntelliJ IDEA. Se conosci un modo migliore di quello che descriverò nell'articolo, scrivilo nei commenti e ne discuteremo.

Input richiesti:

  1. Leggi, segui e comprendi il mio articolo su Git . Ciò contribuirà a garantire che tutto sia configurato e pronto per l'uso.
  2. Installa IntelliJ IDEA.
  3. Assegna un'ora di tempo personale per raggiungere la completa padronanza.
Lavoriamo con il progetto demo che ho usato per l'articolo su Git. AGGIORNAMENTO:Al momento della pubblicazione, la nuova interfaccia utente di GitHub sarà disponibile e alcune icone non saranno dove sono mostrate nell'articolo. Non allarmarti: devi solo non passare alla nuova interfaccia utente o cercarli.

Clonare il progetto localmente

Ci sono due opzioni qui:
  1. Se hai già un account GitHub e vuoi inviare qualcosa in un secondo momento, è meglio eseguire il fork del progetto e clonare la tua copia.
  2. Clona il mio repository e fai tutto localmente senza la possibilità di inviare tutto al server. Dopotutto, questo è il mio repository :)
Per clonare un progetto da GitHub, devi copiare il link del progetto e passarlo a IntelliJ IDEA:
  1. Copia l'indirizzo del progetto:

    Una partita fatta in paradiso: Git e IntelliJ IDEA - 2
  2. Apri IntelliJ IDEA e seleziona "Ottieni da controllo versione":

    Una partita fatta in paradiso: Git e IntelliJ IDEA - 3
  3. Copia e incolla l'indirizzo del progetto:

    Una partita fatta in paradiso: Git e IntelliJ IDEA - 4
  4. Verrà richiesto di creare un progetto IntelliJ IDEA. Accetta l'offerta:

    Una partita fatta in paradiso: Git e IntelliJ IDEA - 5
  5. Poiché non esiste un sistema di compilazione e questo va oltre lo scopo di questo articolo, selezioniamo Crea progetto da fonti esistenti :

    Una partita fatta in paradiso: Git e IntelliJ IDEA - 6
  6. Successivamente vedrai questo bellissimo schermo: Una partita fatta in paradiso: Git e IntelliJ IDEA - 7Ora che abbiamo capito la clonazione, puoi dare un'occhiata in giro.

Primo sguardo a IntelliJ IDEA come interfaccia utente Git

Dai un'occhiata più da vicino al progetto clonato: puoi già ottenere molte informazioni sul sistema di controllo della versione. Innanzitutto, abbiamo il riquadro Controllo versione nell'angolo in basso a sinistra. Qui puoi trovare tutte le modifiche locali e ottenere un elenco di commit (analogo a "git log"). Passiamo a una discussione su Log . C'è una certa visualizzazione che ci aiuta a capire esattamente come è proceduto lo sviluppo. Ad esempio, puoi vedere che è stato creato un nuovo ramo con un'intestazione aggiunta al commit txt, che è stato poi unito al ramo principale. Se fai clic su un commit, puoi vedere nell'angolo destro tutte le informazioni sul commit: tutte le sue modifiche e metadati.Una partita fatta in paradiso: Git e IntelliJ IDEA - 8Inoltre, puoi vedere i cambiamenti effettivi. Vediamo anche che lì è stato risolto un conflitto. IDEA presenta anche questo molto bene. Se fai doppio clic sul file che è stato modificato durante questo commit, vedremo come è stato risolto il conflitto: Notiamo Una partita fatta in paradiso: Git e IntelliJ IDEA - 9che a sinistra ea destra abbiamo le due versioni dello stesso file che dovevano essere unite in una sola. E nel mezzo, abbiamo il risultato finale della fusione. Quando un progetto ha molti rami, commit e utenti, devi cercare separatamente per ramo, utente e data: Una partita fatta in paradiso: Git e IntelliJ IDEA - 10L'ultima cosa che voglio spiegare prima di iniziare è come capire in quale ramo ci troviamo. un minuto per capirlo... L'hai trovato? Abbandonare? :D Nell'angolo in basso a destra c'è un pulsante con l'etichetta Git: master. Qualunque cosa segua "Git:" è il ramo corrente. Se fai clic sul pulsante, puoi fare molte cose utili: passare a un altro ramo, crearne uno nuovo, rinominarne uno esistente e così via.Una partita fatta in paradiso: Git e IntelliJ IDEA - 11

Lavorare con un repository

Tasti di scelta rapida utili

Per il lavoro futuro, è necessario ricordare alcuni tasti di scelta rapida molto utili:
  1. CTRL+T — Ottieni le ultime modifiche dal repository remoto (git pull).
  2. CTRL+K — Crea un commit / visualizza tutte le modifiche correnti. Ciò include sia i file non tracciati che quelli modificati (vedi il mio articolo su git, che spiega questo) (git commit).
  3. CTRL+MAIUSC+K — Questo è il comando per inviare le modifiche al repository remoto. Tutti i commit creati localmente e non ancora nel repository remoto verranno inviati (git push).
  4. ALT+CTRL+Z : ripristina le modifiche in un file specifico allo stato dell'ultimo commit creato nel repository locale. Se selezioni l'intero progetto nell'angolo in alto a sinistra, puoi ripristinare le modifiche in tutti i file.
Una partita fatta in paradiso: Git e IntelliJ IDEA - 12

Cosa vogliamo?

Per portare a termine il lavoro, dobbiamo padroneggiare uno scenario di base utilizzato ovunque. L'obiettivo è implementare nuove funzionalità in un ramo separato e quindi inviarlo a un repository remoto (quindi è necessario anche creare una richiesta pull al ramo principale, ma questo va oltre lo scopo di questo articolo). Cosa è necessario per fare questo?
  1. Ottieni tutte le modifiche correnti nel ramo principale (ad esempio, "master").

  2. Da questo ramo principale, crea un ramo separato per il tuo lavoro.

  3. Implementare la nuova funzionalità.

  4. Vai al ramo principale e controlla se ci sono stati nuovi cambiamenti mentre stavamo lavorando. In caso contrario, allora va tutto bene. Ma se ci sono state modifiche, allora facciamo quanto segue: andiamo al ramo di lavoro e ribasiamo le modifiche dal ramo principale al nostro. Se tutto va bene, allora fantastico. Ma è del tutto possibile che ci saranno conflitti. Si dà il caso che possano essere risolti in anticipo, senza perdere tempo nel repository remoto.

    Ti stai chiedendo perché dovresti farlo? È una buona educazione e impedisce che si verifichino conflitti dopo aver spinto il tuo ramo nel repository locale (c'è, ovviamente, la possibilità che si verifichino ancora conflitti, ma diventa molto più piccolo ).

  5. Invia le tue modifiche al repository remoto.
Ciò che viene dopo dipende dai tuoi compiti e dalla tua immaginazione.

Ottenere modifiche dal server remoto?

Ho aggiunto una descrizione al README con un nuovo commit e desidero ottenere queste modifiche. Se sono state apportate modifiche sia nel repository locale che in quello remoto, allora siamo invitati a scegliere tra un merge e un rebase. Scegliamo di fonderci. Digita CTRL+T : Una partita fatta in paradiso: Git e IntelliJ IDEA - 13ora puoi vedere come è cambiato il README, cioè le modifiche dal repository remoto sono state inserite, e nell'angolo in basso a destra puoi vedere tutti i dettagli delle modifiche che sono arrivate dal server.Una partita fatta in paradiso: Git e IntelliJ IDEA - 14

Crea un nuovo ramo basato su master

Tutto è semplice qui.
  1. Vai nell'angolo in basso a destra e fai clic su Git: master . Seleziona + Nuovo ramo .

    Una partita fatta in paradiso: Git e IntelliJ IDEA - 15
  2. Lascia selezionata la casella di controllo Filiale Checkout e inserisci il nome della nuova filiale. Per me, sarà readme-improver .

    Una partita fatta in paradiso: Git e IntelliJ IDEA - 16

    Git: master cambierà quindi in Git: readme-improver .

Simuliamo un lavoro parallelo

Affinché i conflitti appaiano, qualcuno deve crearli :D Modificherò il README con un nuovo commit attraverso il browser, simulando così un lavoro parallelo. È come se qualcuno apportasse modifiche allo stesso file mentre ci stavo lavorando. Il risultato sarà un conflitto. Toglierò la parola "fully" dalla riga 10.

Implementa la nostra funzionalità

Il nostro compito è modificare il README e aggiungere una descrizione al nuovo articolo. Cioè, il lavoro in Git passa attraverso IntelliJ IDEA. Aggiungi questo: Una partita fatta in paradiso: Git e IntelliJ IDEA - 17le modifiche sono state apportate. Ora possiamo creare un commit. Premi CTRL+K , che ci dà: Una partita fatta in paradiso: Git e IntelliJ IDEA - 18Prima di creare un commit, dobbiamo dare un'occhiata da vicino a ciò che offre questa finestra. Ho aggiunto delle frecce rosse per mostrarti dove cercare. Ci sono un sacco di cose interessanti qui. Nella sezione Commit Message , scriviamo il testo associato al commit. Quindi per crearlo, dobbiamo fare clic su Commit. Non ho ancora scoperto come farlo con un tasto di scelta rapida. Se qualcuno scopre come, per favore scrivimi - questo mi renderebbe molto felice. Scriviamo che il README è cambiato e creiamo il commit. Viene visualizzato un avviso nell'angolo in basso a sinistra con il nome del commit:Una partita fatta in paradiso: Git e IntelliJ IDEA - 19

Controlla se il ramo principale è cambiato

Abbiamo completato il nostro compito. Funziona. Abbiamo scritto test. Va tutto bene. Ma prima di eseguire il push al server, dobbiamo ancora verificare se nel frattempo sono state apportate modifiche al ramo principale. Come è potuto succedere? Abbastanza facilmente: qualcuno riceve un compito dopo di te e quel qualcuno lo completa più velocemente di quanto tu finisca il tuo compito. Quindi dobbiamo andare al ramo principale. Per fare ciò, dobbiamo fare ciò che è mostrato nell'angolo in basso a destra nello screenshot qui sotto: Una partita fatta in paradiso: Git e IntelliJ IDEA - 20Nel ramo principale, premi CTRL+T per ottenere le ultime modifiche dal server remoto. Guardando quali sono i cambiamenti, puoi facilmente vedere cosa è successo:Una partita fatta in paradiso: Git e IntelliJ IDEA - 21La parola "fully" è stata rimossa. Forse qualcuno del marketing ha deciso che non dovrebbe essere scritto così e ha dato agli sviluppatori il compito di aggiornarlo. Ora abbiamo una copia locale dell'ultima versione del ramo principale. Torna a readme-improver . Ora dobbiamo ribasare le modifiche dal ramo principale al nostro. Facciamo così: Una partita fatta in paradiso: Git e IntelliJ IDEA - 22Se hai fatto tutto correttamente e mi hai seguito, il risultato dovrebbe mostrare un conflitto nel file README: Una partita fatta in paradiso: Git e IntelliJ IDEA - 23Anche qui abbiamo molte informazioni da capire e assorbire. Qui viene mostrato un elenco di file (nel nostro caso, un file) che presentano conflitti. Possiamo scegliere tra tre opzioni:
  1. accetta il tuo: accetta solo le modifiche da readme-improver.
  2. accetta i loro — accetta solo modifiche dal master.
  3. unisci: scegli tu stesso cosa vuoi conservare e cosa scartare.
Non è chiaro cosa sia cambiato. Se ci sono modifiche sono il ramo principale, devono essere necessarie lì, quindi non possiamo semplicemente accettare le nostre modifiche. Di conseguenza, selezioniamo merge : Una partita fatta in paradiso: Git e IntelliJ IDEA - 24Qui possiamo vedere che ci sono tre parti:
  1. Queste sono le modifiche da readme-improver.
  2. Il risultato unito. Per ora, è ciò che esisteva prima dei cambiamenti.
  3. Le modifiche dal ramo master.
Dobbiamo produrre un risultato unito che soddisfi tutti. Esaminando ciò che è stato modificato PRIMA delle nostre modifiche, ci rendiamo conto che hanno semplicemente rimosso la parola "fully". Ok nessun problema! Ciò significa che lo rimuoveremo anche nel risultato unito e quindi aggiungeremo le nostre modifiche. Una volta corretto il risultato unito, possiamo fare clic su Applica . Poi comparirà una notifica che ci dice che il rebase è andato a buon fine: Una partita fatta in paradiso: Git e IntelliJ IDEA - 25Ecco! Abbiamo risolto il nostro primo conflitto tramite IntelliJ IDEA :D

Invio delle modifiche al server remoto

Il passaggio successivo consiste nell'inviare le modifiche al server remoto e creare una richiesta pull. Per fare ciò, premi semplicemente CTRL+MAIUSC+K . Quindi otteniamo: Una partita fatta in paradiso: Git e IntelliJ IDEA - 26a sinistra, ci sarà un elenco di commit che non sono stati inviati al repository remoto. Sulla destra ci saranno tutti i file che sono stati modificati. E questo è tutto! Premi Push e sperimenterai la felicità :) Se il push ha successo, vedrai una notifica come questa nell'angolo in basso a destra:Una partita fatta in paradiso: Git e IntelliJ IDEA - 27

Parte bonus

All'inizio non volevo aggiungere la creazione di una richiesta pull a questo articolo, ma senza di essa non è del tutto completo. Quindi, andiamo in un repository GitHub (uno che è tuo, ovviamente :)) e vediamo che GitHub sa già cosa vogliamo: fai Una partita fatta in paradiso: Git e IntelliJ IDEA - 28clic su Compare & pull request . Quindi fai clic su Crea richiesta pull . Poiché abbiamo risolto i conflitti in anticipo, ora, quando creiamo una richiesta pull, possiamo unirla immediatamente: Una partita fatta in paradiso: Git e IntelliJ IDEA - 29e questo è tutto ciò che volevo dire questa volta. Certo, ti ho aperto solo un po' la porta e ti ho mostrato una piccola parte. Imparerai a conoscere il resto man mano che ne avrai bisogno. Ho l'abitudine di invitarti a seguirmi su GitHub, dove pubblico i miei progetti che coinvolgono varie tecnologie che utilizzo al lavoro. Di recente ho realizzato un traguardo personale: uno dei miei progetti ha ricevuto stelle da più di cento sviluppatori. C'è un'incredibile sensazione di gioia quando sai che quello che hai fatto è stato usato da qualcun altro. E usandolo per sempre.

Link utili

  1. CodeGym: Iniziare con Git: una guida completa per i neofiti
  2. GitHub: progetto demo per fare pratica
  3. JetBrains: imposta un repository Git
  4. GitHub: il mio account
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION