JavaRush /Java Blog /Random-IT /Colleghiamo Git con Intellij IDEA
Roman Beekeeper
Livello 35

Colleghiamo Git con Intellij IDEA

Pubblicato nel gruppo Random-IT
Come è tradizione, do il benvenuto a voi, futuri Senior Software Engineers. Colleghiamo Git con Intellij IDEA - 1Oggi parleremo della logica continuazione del mio articolo su Git . Consiglio anche di leggere il materiale sulle strategie di ramificazione che ho pubblicato in precedenza. Nell'articolo su Git ho descritto come lavorare con esso dalla riga di comando e oggi ti mostrerò come fare tutto questo in Intellij IDEA. All'inizio del mio viaggio come sviluppatore, ho utilizzato la riga di comando e pensavo di non aver bisogno di utilizzare l'interfaccia utente per questa faccenda. Dopotutto, tutto è chiaro e quindi... Ma è stato esattamente fino al momento in cui ho iniziato a utilizzare Git in Intellij IDEA... Voglio dire subito che descriverò la mia esperienza personale. Esistono diverse opzioni per risolvere gli stessi problemi utilizzando Intellij IDEA, e se sai come fare meglio ciò che descrivo nell'articolo, scrivi nei commenti e ne discuteremo.

Note introduttive necessarie:

  1. Leggi, ripeti e comprendi l'articolo su git . Ciò contribuirà a garantire che tutto sia già configurato e pronto per l'uso.
  2. Installa Intellij IDEA.
  3. Metti da parte un'ora di tempo personale per un completo assorbimento.
Per lavoro, prendiamo il progetto demo che ho usato per l'articolo su Git. AGGIORNAMENTO:Al momento della pubblicazione la nuova Github UI sarà già disponibile e alcune icone non saranno presenti dove viene mostrata nell'articolo. Non allarmarti: dovrai 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 seguito, è meglio eseguire il fork del progetto su te stesso e clonare la tua copia. Come realizzare un fork - Ho descritto in questo articolo nel capitolo un esempio del flusso di lavoro del fork .
  2. Clona dal mio repository e fai tutto localmente senza la possibilità di inviare il tutto sul server. Dopotutto, questo sarà il mio repository))
Per clonare un progetto da Github, devi copiare il collegamento al progetto e passarlo a IntelliJ IDEA:
  1. Copia l'indirizzo del progetto:

    Colleghiamo Git con Intellij IDEA - 2
  2. Apri Intellij IDEA e seleziona Ottieni da Controllo versione:

    Colleghiamo Git con Intellij IDEA - 3
  3. Copia e incolla l'indirizzo nel progetto:

    Colleghiamo Git con Intellij IDEA - 4
  4. Ti verrà richiesto di creare un progetto Intellij IDEA. Accettiamo l'offerta:

    Colleghiamo Git con Intellij IDEA - 5
  5. Poiché non esiste un sistema di compilazione e questo non rientra nell'ambito dell'articolo, seleziona Crea progetto da fonti esistenti :

    Colleghiamo Git con Intellij IDEA - 6
  6. Poi ci sarà un dipinto ad olio come questo: Colleghiamo Git con Intellij IDEA - 7Abbiamo risolto la clonazione, ora possiamo guardarci intorno.

Primo sguardo a Intellij IDEA come interfaccia utente Git

Dai un'altra occhiata da vicino al progetto clonato: già lì puoi ottenere molte informazioni sul sistema di controllo della versione. Il primo è il pannello di controllo della versione nell'angolo in basso a sinistra. In esso puoi trovare tutte le modifiche locali e ottenere un elenco di commit (analogo al registro git). Passiamo alla lezione Log . C'è una certa componente visiva che aiuta a capire esattamente come è andato il processo di sviluppo. Ad esempio, puoi vedere che è stato creato un nuovo ramo con un'intestazione aggiunta al commit in txt , che è stata poi unita al ramo master. Se fai clic su un commit, nell'angolo destro puoi vedere tutte le informazioni sul commit: tutte le modifiche e i suoi metadati. Colleghiamo Git con Intellij IDEA - 8Inoltre, puoi vedere quali modifiche sono state apportate. Inoltre, il conflitto è stato risolto lì. Anche IDEA lo dimostra perfettamente. Se fai doppio clic sul file che è stato modificato durante questo commit, vedremo come è stato risolto il conflitto: Colleghiamo Git con Intellij IDEA - 9è evidente che a destra e a sinistra c'erano due versioni dello stesso file che dovevano essere unite in una sola. E nel mezzo c'è il risultato finale. Quando un progetto ha molti rami, commit e utenti che lavorano nel progetto, è necessario cercare separatamente per ramo (ramo), utente (utente) e data (data): Colleghiamo Git con Intellij IDEA - 10E l'ultima cosa che voglio spiegare prima di iniziare è come capire in quale ramo siamo. Ti do un minuto per cercare... l'hai trovato? Ti stai arrendendo? :D Nell'angolo in basso a destra c'è un pulsante Git: master , dove dopo Git: mostra su quale ramo si trova attualmente il progetto. Se clicchi sul pulsante, puoi fare molte cose utili: spostarti su un altro ramo, crearne uno nuovo, rinominarne uno esistente e così via. Colleghiamo Git con Intellij IDEA - 11

Lavorare con il repository

Tasti di scelta rapida utili

Per continuare a lavorare, è necessario ricordare alcuni tasti di scelta rapida molto utili:
  1. ctrl + t : ottieni le ultime modifiche da un repository remoto (git pull).
  2. ctrl + k - conferma/visualizza tutte le modifiche attualmente disponibili. Ciò include sia i file non tracciati che quelli modificati (vedi il mio articolo su git, questo è descritto lì) (git commit).
  3. ctrl + maiusc + k è un comando per inviare modifiche a un repository remoto. Tutti i commit che sono stati creati localmente e non sono ancora su quello remoto verranno offerti per il push (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 su tutti i file.
Colleghiamo Git con Intellij IDEA - 12

Cosa vogliamo?

Per funzionare, dobbiamo padroneggiare lo script di base, utilizzato ovunque. Il compito è implementare la nuova funzionalità in un ramo separato e inviarla a un repository remoto (quindi è necessario creare un'altra richiesta pull per il ramo principale, ma questo va oltre lo scopo del nostro articolo). Cosa devo fare?
  1. Ottieni tutte le modifiche attualmente nel ramo principale (master, ad esempio).

  2. Sulla base di questo principale, creane uno separato per il tuo lavoro.

  3. Implementare nuove funzionalità.

  4. Vai al ramo principale e controlla se ci sono state nuove modifiche mentre stavi lavorando. Se non lo era, allora va tutto bene, e se lo fosse, allora facciamo quanto segue: andiamo al ramo di lavoro e ribasiamo le modifiche dal ramo principale al nostro. Se tutto è andato bene, allora bene. Ma potrebbero esserci dei conflitti. E possono essere risolti in anticipo senza perdere tempo su un repository remoto.

    Sembrerebbe, perché farlo? Questa è una regola di buona forma, che previene l'insorgere di conflitti dopo aver spostato il ramo nel repository locale (c'è, ovviamente, la possibilità che esistano ancora, ma diventa molto più piccola).

  5. Invia le tue modifiche a un repository remoto.
Ciò che accadrà dopo dipende dai tuoi obiettivi e dalla tua immaginazione.

Ricevi modifiche da un server remoto?

Ho aggiunto una descrizione al README con un nuovo commit e desidero ricevere queste modifiche. Viene offerta una scelta tra merge e rebase se sono state apportate modifiche sia nel repository locale che in quello remoto. Seleziona un'unione. Inserisci ctrl + t : Colleghiamo Git con Intellij IDEA - 13di conseguenza, puoi vedere come è cambiato il README, ad es. le modifiche dal repository remoto sono state recuperate e nell'angolo in basso a destra puoi vedere tutti i dettagli delle modifiche provenienti dal server. Colleghiamo Git con Intellij IDEA - 14

Crea un nuovo ramo basato sul master

Tutto è semplice qui.
  1. Vai nell'angolo in basso a destra e fai clic su Git: master , seleziona + New Branch .

    Colleghiamo Git con Intellij IDEA - 15
  2. Lascia la casella di controllo del ramo Checkout e scrivi il nome del nuovo ramo. Per me sarebbe readme-improver .

    Colleghiamo Git con Intellij IDEA - 16

    Successivamente, Git: master cambierà in Git: readme-improver .

Simulazione del lavoro parallelo

Perché appaiano dei conflitti, qualcuno deve crearli :D Modificherò il README con un nuovo commit tramite il browser e simulerò così il lavoro parallelo. Dicono che qualcuno, durante il mio lavoro, ha apportato modifiche al mio stesso file, il che porterà a un conflitto. Eliminerò la parola “interamente” dalla riga 10.

Implementa la tua funzionalità

Il compito è modificare il README e aggiungere una descrizione al nuovo articolo, ovvero il lavoro in git viene svolto tramite Intellij IDEA. Aggiungi questo: Colleghiamo Git con Intellij IDEA - 17le modifiche sono complete, ora puoi creare un commit. Premi il tasto di scelta rapida ctrl + k , otteniamo: Colleghiamo Git con Intellij IDEA - 18Prima di creare un commit, devi guardare attentamente cosa viene offerto in questa finestra. Ho appositamente aggiunto una freccia per mostrarti dove cercare. Ci sono molte cose interessanti lì. Nella sezione Commit Message scriviamo il testo del commit e, affinché venga creato, è necessario fare clic sul pulsante Commit . Non ho ancora trovato come farlo con un tasto di scelta rapida, quindi se qualcuno lo trova, scrivi, sarò molto felice. Scriviamo che il README è cambiato e creiamo un commit. Di conseguenza, verrà visualizzato un avviso nell'angolo in basso a sinistra con il nome del commit: Colleghiamo Git con Intellij IDEA - 19

Controlla se il ramo master è cambiato

Abbiamo completato l'attività, funziona, abbiamo scritto i test, va tutto bene. Ma prima di inviare al server, è necessario verificare se durante questo periodo sono stati apportati cambiamenti nel ramo principale. Come è potuto accadere? È molto semplice: a qualcuno è stato assegnato un compito dopo di te e questo qualcuno lo ha fatto più velocemente di te. Passiamo quindi al ramo master. Per fare ciò, devi fare nell'angolo in basso a destra ciò che è mostrato nella figura seguente: Colleghiamo Git con Intellij IDEA - 20Nel ramo principale, premi ctrl + t per ottenere le ultime modifiche dal server remoto. Se guardi quali modifiche sono state apportate, puoi facilmente notare cosa è successo: Colleghiamo Git con Intellij IDEA - 21come puoi vedere, la parola “completamente” è stata rimossa. Forse è stato qualcuno del marketing a decidere che non si poteva scrivere così e ha dato agli sviluppatori il compito di aggiornarlo. Ora disponiamo localmente dell'ultima versione del ramo master. Torniamo a readme-improver . Ora dobbiamo riprogrammare le modifiche dal ramo master al nostro. Sì: Colleghiamo Git con Intellij IDEA - 22se hai seguito tutto correttamente con me, il risultato dovrebbe essere un conflitto nel file README: Colleghiamo Git con Intellij IDEA - 23anche qui ci sono molte informazioni che devono essere comprese e assorbite. Questo mostra un elenco (nel nostro caso di un elemento) di file che presentano conflitti. Possiamo scegliere tre opzioni:
  1. accetta il tuo: accetta solo le modifiche da readme-improver.
  2. accetta le loro - accetta solo le modifiche dal master.
  3. unisci: scegli tu stesso cosa mantenere e cosa rimuovere.
Non è chiaro cosa sia cambiato lì, e se le modifiche sono nel master, allora sono necessarie lì e non possiamo semplicemente accettare le nostre modifiche, quindi selezioniamo unisci : Colleghiamo Git con Intellij IDEA - 24qui puoi vedere che ci sono tre parti:
  1. Queste sono modifiche rispetto a Readme-improver.
  2. Risultato. Per ora è uguale a prima dei cambiamenti.
  3. Modifiche dal ramo principale.
Bisogna raccogliere il risultato in modo tale che soddisfi tutti. Pertanto, abbiamo studiato cosa hanno fatto PRIMA di noi e ci siamo resi conto che hanno semplicemente rimosso la parola “completamente”. Bene, ok, nessun problema. Ciò significa che lo rimuoveremo di conseguenza e aggiungeremo le nostre modifiche. Non appena correggeremo il risultato, puoi fare clic su Applica . Successivamente, verrà visualizzata una notifica che il rebase ha avuto successo: Colleghiamo Git con Intellij IDEA - 25Ecco come abbiamo risolto il nostro primo conflitto tramite Intellij IDEA :D

Invia le modifiche a un server remoto

Il passaggio successivo consiste nell'inviare le modifiche al server remoto e creare una richiesta pull. Per fare ciò, basta premere ctrl + shift + k , dopodiché otteniamo: Colleghiamo Git con Intellij IDEA - 26A sinistra ci sarà un elenco di commit che non sono stati inviati al repository remoto e a destra ci saranno tutti i file che sono stati cambiato. Questo è tutto: clicca su Push , e sarai felice :) Se il push va a buon fine, apparirà una notifica come questa nell'angolo in basso a destra: Colleghiamo Git con Intellij IDEA - 27

Parte bonus

Inizialmente non volevo aggiungere all’articolo la creazione di una pull request, ma per questo motivo risulta poco completo. Andiamo quindi nel repository GitHub (se è il tuo, ovviamente)))) e vediamo che GitHub sa già cosa offrirci: Colleghiamo Git con Intellij IDEA - 28clicca su Confronta e richiesta pull e poi su Crea richiesta pull . Dato che abbiamo risolto i conflitti in anticipo, ora quando crei una richiesta pull puoi immediatamente unirla: Colleghiamo Git con Intellij IDEA - 29questo è tutto ciò che volevo dirti questa volta. Naturalmente, ho appena aperto la porta e vi ho mostrato una piccola parte. Il resto lo troverai tu stesso, se necessario. Come al solito, ti invito a iscriverti al mio account GitHub , dove pubblico progetti basati su varie tecnologie che utilizzo al lavoro. Recentemente ho ottenuto un risultato personale: il mio progetto è già stato valutato da più di cento sviluppatori. È un'incredibile sensazione di gioia che qualcuno usi ciò che hai fatto. E lo usa a fin di bene.

link utili

  1. JavaRush: Iniziare con Git: una guida dettagliata per principianti
  2. GitHub: progetto demo con cui lavorare
  3. JavaRush: analisi delle strategie di ramificazione in Git
  4. JetBrains: configura un repository Git
  5. Habr: Git rebase
  6. GitHub: il mio account
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION