
Nødvendige innganger:
- Les, følg med og forstå artikkelen min om Git . Dette vil bidra til å sikre at alt er satt opp og klart til bruk.
- Installer IntelliJ IDEA.
- Tildel en time med personlig tid for å oppnå fullstendig mestring.
Klon prosjektet lokalt
Det er to alternativer her:- Hvis du allerede har en GitHub-konto og ønsker å pushe noe senere, er det bedre å splitte prosjektet og klone din egen kopi.
- Klone lageret mitt og gjør alt lokalt uten muligheten til å skyve hele greia til serveren. Tross alt er dette oppbevaringsstedet mitt :)
-
Kopier prosjektadressen:
-
Åpne IntelliJ IDEA og velg "Få fra versjonskontroll":
-
Kopier og lim inn prosjektadressen:
-
Du vil bli bedt om å opprette et IntelliJ IDEA-prosjekt. Godta tilbudet:
-
Siden det ikke er noe byggesystem og det er utenfor rammen av denne artikkelen, velger vi Opprett prosjekt fra eksisterende kilder :
-
Deretter vil du se denne vakre skjermen:
Nå som vi fant ut kloning, kan du ta en titt rundt.
Første blikk på IntelliJ IDEA som et Git UI
Ta en nærmere titt på det klonede prosjektet: du kan allerede få mye informasjon om versjonskontrollsystemet. Først har vi Versjonskontroll- panelet i nedre venstre hjørne. Her kan du finne alle lokale endringer og få en liste over commits (analogt med "git log"). La oss gå videre til en diskusjon av Log . Det er en viss visualisering som hjelper oss å forstå nøyaktig hvordan utviklingen har gått. For eksempel kan du se at en ny gren ble opprettet med en tilføyd overskrift til txt commit, som deretter ble slått sammen til hovedgrenen. Hvis du klikker på en forpliktelse, kan du se i høyre hjørne all informasjon om forpliktelsen: alle endringer og metadata.



Arbeider med et depot
Nyttige hurtigtaster
For fremtidig arbeid må du huske noen svært nyttige hurtigtaster:- CTRL+T — Få de siste endringene fra fjernlageret (git pull).
- CTRL+K — Opprett en forpliktelse / se alle gjeldende endringer. Dette inkluderer både usporede og modifiserte filer (se artikkelen min om git, som forklarer dette) (git commit).
- CTRL+SHIFT+K — Dette er kommandoen for å skyve endringer til det eksterne depotet. Alle forpliktelser som er opprettet lokalt og ennå ikke er i det eksterne depotet, vil bli presset (git push).
- ALT+CTRL+Z — Tilbakestill endringer i en spesifikk fil til tilstanden til den siste commit som ble opprettet i det lokale depotet. Hvis du velger hele prosjektet i øvre venstre hjørne, kan du rulle tilbake endringer i alle filer.

Hva vil vi?
For å få utført arbeid må vi mestre et grunnleggende scenario som brukes overalt. Målet er å implementere ny funksjonalitet i en egen gren og deretter skyve den til et eksternt depot (da må du også opprette en pull-forespørsel til hovedgrenen, men det er utenfor rammen av denne artikkelen). Hva kreves for å gjøre dette?-
Få alle gjeldende endringer i hovedgrenen (for eksempel "master").
-
Fra denne hovedgrenen oppretter du en egen gren for arbeidet ditt.
-
Implementer den nye funksjonaliteten.
-
Gå til hovedavdelingen og sjekk om det har vært noen nye endringer mens vi jobbet. Hvis ikke, så er alt bra. Men hvis det var endringer, så gjør vi følgende: gå til arbeidsgrenen og rebase endringene fra hovedgrenen til vår. Hvis alt går bra, så flott. Men det er fullt mulig at det blir konflikter. Som det skjer, kan de bare løses på forhånd, uten å kaste bort tid i det eksterne depotet.
Lurer du på hvorfor du bør gjøre dette? Det er god oppførsel og forhindrer konflikter fra å oppstå etter å ha presset filialen din til det lokale depotet (det er selvfølgelig en mulighet for at konflikter fortsatt vil oppstå, men det blir mye mindre).
- Send endringene dine til det eksterne depotet.
Vil du få endringer fra den eksterne serveren?
Jeg la til en beskrivelse i README med en ny forpliktelse og ønsker å få disse endringene. Hvis endringer ble gjort både i det lokale depotet og i det eksterne, er vi invitert til å velge mellom en sammenslåing og en rebase. Vi velger å slå sammen. Skriv inn CTRL+T :

Opprett en ny gren basert på master
Alt er enkelt her.-
Gå til nederste høyre hjørne og klikk Git: master . Velg + Ny gren .
La avmerkingsboksen Checkout filial være valgt og skriv inn navnet på den nye filialen. For meg vil det være readme-forbedrer .

Git: master vil da endres til Git: readme-improver .
La oss simulere parallelt arbeid
For at konflikter skal dukke opp, må noen lage dem :D Jeg vil redigere README med en ny commit gjennom nettleseren, og simulerer dermed parallelt arbeid. Det er som om noen gjorde endringer i den samme filen mens jeg jobbet med den. Resultatet vil bli en konflikt. Jeg vil fjerne ordet "fully" fra linje 10.Implementer funksjonaliteten vår
Vår oppgave er å endre README og legge til en beskrivelse til den nye artikkelen. Det vil si at arbeidet i Git går gjennom IntelliJ IDEA. Legg til dette:


Sjekk om hovedgrenen er endret
Vi fullførte oppgaven vår. Det fungerer. Vi skrev prøver. Alt er bra. Men før vi skyver til serveren, må vi fortsatt sjekke om det var noen endringer i hovedgrenen i mellomtiden. Hvordan kunne det skje? Ganske enkelt: noen mottar en oppgave etter deg, og at noen fullfører den raskere enn du fullfører oppgaven. Så vi må gå til mestergrenen. For å gjøre dette, må vi gjøre det som er vist i nedre høyre hjørne i skjermbildet nedenfor:



- godta din - godta kun endringer fra readme-improver.
- godta deres — godta kun endringer fra master.
- slå sammen – velg selv hva du vil beholde og hva du vil forkaste.

- Dette er endringene fra readme-improver.
- Det sammenslåtte resultatet. Foreløpig er det det som eksisterte før endringene.
- Endringene fra mastergrenen.

Push endringer til den eksterne serveren
Det neste trinnet er å skyve endringene til den eksterne serveren og opprette en pull-forespørsel. For å gjøre dette, trykk ganske enkelt CTRL+SHIFT+K . Så får vi:

Bonus del
Til å begynne med ønsket jeg ikke å legge til opprettelsen av en pull-forespørsel i denne artikkelen, men den er ikke helt komplett uten den. Så, la oss gå til et GitHub-lager (et som er ditt, selvfølgelig :)), og vi ser at GitHub allerede vet hva vi vil ha:

GO TO FULL VERSION