Input richiesti:
- Leggi, segui e comprendi il mio articolo su Git . Ciò contribuirà a garantire che tutto sia configurato e pronto per l'uso.
- Installa IntelliJ IDEA.
- Assegna un'ora di tempo personale per raggiungere la completa padronanza.
Clonare il progetto localmente
Ci sono due opzioni qui:- 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.
- Clona il mio repository e fai tutto localmente senza la possibilità di inviare tutto al server. Dopotutto, questo è il mio repository :)
-
Copia l'indirizzo del progetto:
-
Apri IntelliJ IDEA e seleziona "Ottieni da controllo versione":
-
Copia e incolla l'indirizzo del progetto:
-
Verrà richiesto di creare un progetto IntelliJ IDEA. Accetta l'offerta:
-
Poiché non esiste un sistema di compilazione e questo va oltre lo scopo di questo articolo, selezioniamo Crea progetto da fonti esistenti :
-
Successivamente vedrai questo bellissimo schermo: Ora 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.Inoltre, 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 che 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: L'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.Lavorare con un repository
Tasti di scelta rapida utili
Per il lavoro futuro, è necessario ricordare alcuni tasti di scelta rapida molto utili:- CTRL+T — Ottieni le ultime modifiche dal repository remoto (git pull).
- 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).
- 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).
- 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.
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?-
Ottieni tutte le modifiche correnti nel ramo principale (ad esempio, "master").
-
Da questo ramo principale, crea un ramo separato per il tuo lavoro.
-
Implementare la nuova funzionalità.
-
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 ).
- Invia le tue modifiche al repository remoto.
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 : ora 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.Crea un nuovo ramo basato su master
Tutto è semplice qui.-
Vai nell'angolo in basso a destra e fai clic su Git: master . Seleziona + Nuovo ramo .
Lascia selezionata la casella di controllo Filiale Checkout e inserisci il nome della nuova filiale. Per me, sarà readme-improver .
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: le modifiche sono state apportate. Ora possiamo creare un commit. Premi CTRL+K , che ci dà: Prima 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: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: Nel ramo principale, premi CTRL+T per ottenere le ultime modifiche dal server remoto. Guardando quali sono i cambiamenti, puoi facilmente vedere cosa è successo:La 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ì: Se hai fatto tutto correttamente e mi hai seguito, il risultato dovrebbe mostrare un conflitto nel file README: Anche 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:- accetta il tuo: accetta solo le modifiche da readme-improver.
- accetta i loro — accetta solo modifiche dal master.
- unisci: scegli tu stesso cosa vuoi conservare e cosa scartare.
- Queste sono le modifiche da readme-improver.
- Il risultato unito. Per ora, è ciò che esisteva prima dei cambiamenti.
- Le modifiche dal ramo master.
GO TO FULL VERSION