Enkel versjonskontroll med Git i Android Studio

Som du vet, er det beste å alltid bruke kildekontrollstyring (SCM) for dine prosjekter - selv personlige prosjekter. Vet du at Android Studio har en fantastisk integrasjon med Git for styring av kildekontroll? Hvis du ikke visste eller ikke har erfaring med å bruke den, fortsett å lese dette innlegget. Selv om du allerede har brukt Android Studio Git-integrasjon, kan du likevel hente noen nyttige triks i dette innlegget.

Jeg vil vise deg de mange funksjonene i Git-støtte i Android Studio, og også hvor lett det er å gjøre de forskjellige Git-operasjonene (commit, push, pull, gren, etc.) fra inne i Android Studio. 

I denne veiledningen vil jeg gå gjennom listen over SCM-funksjoner som er tilgjengelige i Android Studio. Vi ser på følgende områder:

  • integrere et nytt Android Studio-prosjekt med Git
  • jobber med GitHub eller Bitbucket
  • utforske Versjonskontroll vindu
  • forplikter
  • grener 
  • skyve og trekke fra et eksternt lager

Forutsetninger

For å kunne følge denne opplæringen må du:

  • en grunnleggende forståelse av styringssystemet Git distribuert versjon
  • Android Studio 3.0 eller høyere

1. Opprett et Android Studio-prosjekt

Brann opp Android Studio og opprett et nytt prosjekt (du kan nevne det GitApplicationDemo) med en tom aktivitet som heter Hoved aktivitet

2. Integrering av Git 

Når Android Studio-prosjektet ditt er konfigurert, klikker du på VCS meny, sving på Importer til Versjonskontroll menyen, og velg Lag Git Repository ...

Deretter velger du den øverste overordnede mappen i Android Studio-prosjektet.

Klikk på OK knappen for å initialisere prosjektet med Git. Under hetten utfører Android Studio Git-kommandoen:

git init

Som en påminnelse, her er hva denne kommandoen vil gjøre: 

Denne kommandoen oppretter et tomt Git-repository-i utgangspunktet a .git katalog med underkataloger for objekterRefs / hoderRefs / tags, og malfiler. En innledende HODE fil som refererer til HOVEDEN i hovedgrenen, er også opprettet.

En informasjonsdialog vil dukke opp: 

Dette forteller oss om en fil som heter vcs.xml inne i .idé mappe. Denne mappen inneholder bare prosjektspesifikke innstillinger. Merk at dette er formatet som brukes av alle nyere IntelliJ IDEA versjoner.

Ideelt sett, filene i .idé/ bør ikke nå Git-så du bør legge den til .gitignore

Som standard byttes vi til hovedgrenen. Du kan alltid se prosjektets nåværende gren i nederste høyre hjørne av Android Studio. 

3. Integrere med GitHub eller Bitbucket

Du kan enkelt jobbe med et av Android-kildekodeoppbevaringsstedet ditt som er i en GitHub- eller Bitbucket-konto i Android Studio. La meg vise deg hvordan du gjør det. 

Navigere til Fil> Nytt> Prosjekt fra Versjonskontroll> GitHub

(Hvis du vil jobbe på en repo fra Bitbucket, velger du Bitbucket i stedet. Hvis du bare vil klone en Git repo fra internett til din lokale maskin, velger du Git menyalternativ.)

Deretter skriver du inn GitHub-kontoens legitimasjon og klikker Logg Inn

Hvis påloggingen ble vellykket, ble Klonregister dialogen vil dukke opp. Denne dialogboksen viser en rullegardinmeny som inneholder en liste over repositorier på GitHub du eier eller har jobbet med.

Klikk Clone å klone repoen til din lokale maskin i den allerede valgte overordnede katalogen.  

4. Versjonskontrollvinduet

Etter å ha startet vårt Android Studio-prosjekt med Git, vil Android Studio vise Versjonskontroll vindu. Klikk på Versjonskontroll fanen (nederst til venstre i Android Studio), og la oss utforske hva vi har der. Merk at du kan bruke Alt-9 Å åpne dette vinduet raskt. 

I dette vinduet har vi tre forskjellige faner: Lokale endringer, Console, og Logg

De lokale endringene Tab

Dette viser listen over filer som er endret lokalt (på egen maskin) og ennå ikke forpliktet til depotet. 

La oss se på verktøylinjene som er tilgjengelige når du er i Lokale endringer tab.

  1. Klikk på dette ikonet for å oppdatere statusen til filene dine på den nåværende arbeidsplassen. Snarveien er Kontroll-F5
  2. Dette ikonet når du klikker vil forplikte dine nåværende endringer. Snarveien er Kontroll-Alt-Z.
  3. Klikk på dette ikonet for å rulle tilbake noen valgte endringer. 
  4. Klikk på dette ikonet for å opprette en ny endringsliste. Vær oppmerksom på at en endringsliste er et sett med endringer i filer som representerer en logisk endring i kildekoden. Snarveien er Alt-Sett
  5. Klikk på denne knappen for å slette den valgte endringslisten. 
  6. For å gjøre en endringsliste aktiv, klikker du bare på dette ikonet. 
  7. Hvis du vil flytte en valgt fil til en annen endringsliste, klikker du på dette ikonet. 
  1. Klikk på dette ikonet for å utvide for å vise alle filer. 
  2. Klikk på dette ikonet for å kollapse alle filer. 
  3. Klikk på dette ikonet for å vise de endrede filene som er gruppert av mapper. 
  4. Klikk på dette ikonet for å kopiere banen til den valgte filen til systemets utklippstavle. 
  5. Klikk på dette ikonet for å vise ignorerte filer node med listen over eksisterende filer ignorert av Git.
  6. Klikk på dette ikonet for å konfigurere listen over filer som vil bli ignorert av Git. 
  7. Klikk på dette ikonet for å åpne Forhåndsvis Diff ruten for å sammenligne den nåværende filen med den siste engasjert revisjonen. 

Konsollen Tab

I denne fanen ser vi resultatet av å utføre Git-relaterte kommandoer. Merk at du ikke kan skrive Git-kommandoer inne i denne kategorien - gjør det i terminalvinduet i Android Studio i stedet. 

Logg-fanen

Denne kategorien viser alle endringene som ble forpliktet til alle grener av lokalt og eksternt lager. Innenfor denne kategorien kan du bla gjennom forpliktelser til enhver gren. 


Søkeboksen brukes til å søke etter forpliktelser som har den angitte strengen eller et vanlig uttrykk. 

  1. Denne rullegardinmenyen som brukes til å filtrere, forplikter seg etter avdeling. For å vise alle lokale og eksterne forpliktelser, velg bare Alle (Standaren). 
  2. For å filtrere begår av forfatteren, bruk denne rullegardinlisten. Du må skrive forfatterens navn for å vise sine forpliktelser. Å velge Alle å se forpliktelser fra alle brukere. 
  3. Bruk denne rullegardinmenyen for å filtrere begår av et tidsområde eller for en bestemt dato. For å være spesifikk på datoen, klikk bare på Å velge og velg datoen. Å velge Alle for å se forpliktelser på alle datoer. 
  4. Bruk denne rullegardinmenyen for å filtrere forplikter seg etter banen for endrede filer. 
  5. Denne knappen (IntelliSort) gir en mer praktisk måte å se sammenføyninger ved først å vise de innkommende begavene, rett under fusjonen. 
  6. Hvis denne knappen er aktivert, vises lange grener i sin helhet, selv om det ikke er noen forpliktelser i dem. 
  7. Bruk denne knappen for å oppdatere listen over forpliktelser i prosjektet. 
  8. For å gå til en hash, tag eller gren, bruk bare denne knappen. 
  9. Klikk på denne knappen for å bruke endringer fra det valgte forbudet til gjeldende gren. 
  10. Klikk på denne knappen for å markere forpliktelsene fra den valgte grenen som ikke har blitt brukt til den nåværende grenen. 

Du kan lære mer om Versjonskontroll verktøyvinduet i IntelliJ IDEA-dokumentasjonen. 

5. Foreta et engasjement

Du vil legge merke til at når vi satt opp Git-integrasjonen med vårt Android Studio-prosjekt, ble filnavnet farget brunt. Ifølge den offisielle IntelliJ IDEA dokumentasjonen, for filer med brune etiketter:

Filen eksisterer lokalt, men er ikke i depotet, og er ikke planlagt for å legge til. 

La oss nå se hvordan du gjør en forpliktelse i Android Studio. Men først må vi legge til våre endringer i arbeidskatalogen til staging-området. I konsollen ville vi bruke git add kommando. 

git add  || 

Men vi kan gjøre dette rett fra Android Studio. Velg Unversioned Files drop-down i Lokale endringer tab, Høyreklikk og gå til Git> Legg til eller bruk Kontroll-Alt-A. Husk at valg av rotmappe vil legge til alt inni det til staging-området. 

Nå vil du observere at filetikettfargene dine har endret seg fra brun til grønn. Her er hva IntelliJ IDEA-dokumentasjonen sier om filnavn som er farget grønt: 

Filen er planlagt for tillegg til depotet. 

Hvis du vil vite mer om de forskjellige fargene et filnavn kan ha, avhengig av filstatusen i Android Studio (IntelliJ IDEA), kan du se dokumentstatus dokumentasjonen. 

For å endelig forplikte våre endringer, klikk på knappen for å forandre endringer i Lokale endringer fanen og Forplikta endringer dialogen vil dukke opp. 

  1. Her kan vi velge eller avmarkere filer som skal inkluderes i denne commit. Som standard kontrolleres alle iscenesatte filer. 
  2. Skriv din forpliktelsesmelding her inne. Hvis du har en tidligere skrevet meldingsmelding, vises den som standard. 
  3. Velg operasjon (er) som skal utføres før du begår Git. 
  4. Side-til-side sammenligning av de endrede filene. 
  5. Med denne rullegardinmenyen kan du enten begå og presse eller bare begå. 

Så for å gjøre en forpliktelse, la oss skrive en forpliktelsesmelding:

Initial commit 

Å velge Begå i Begå rullegardin for å endelig forplikte endringene dine. Merk at du kan bruke snarveien Kontroll-K å forplikte seg når som helst fra Android Studio. 

Hvis du nå besøker Lokale endringer fanen i Versjonskontroll vindu, vil du ikke se noen av filene dine oppført der lenger - fordi vi med hell har forpliktet dem til vår lokale repo. 

Legg merke til at du også kan navigere til VCS> Git> Commit File ...  å gjøre en forpliktelse og VCS> Git> Legg til å legge til en fil for staging. I tillegg kan du klikke på commit-endringsikonet i hovedverktøylinjen i Android Studio for å gjøre et raskt forpliktelse (eller forplikte og presse). 

I vår MainActivity.kt klasse, gjorde jeg en enkel modifikasjon i klassen ved tvingende onResume (). Du vil legge merke til at filnavnet farge etter endringen er nå blått; Dette betyr at vi har endret filen. 

Vise påloggingsloggen

Nå, besøk Versjonskontroll vindu igjen og gå til Logg fane. Det du vil se nå er de forpliktelsene som er gjort for dette prosjektet. For å få mer informasjon om noen forpliktelser, bare klikk på den. 

  1. Denne hovedruten viser alle forpliktelser på prosjektet i henhold til valgt filter. Med andre ord viser dette oss begåhistorikken. 
  2. Denne ruten viser filene og mappene som er berørt av commitet som er valgt i kommandoboken. 
  3. Denne ruten viser flere detaljer om det valgte commitet. 

Ved å høyreklikke på en forpliktelse, kan du også se en meny som lar deg kopiere revisjonsnummeret, lage en oppdatering, sjekke ut en revisjon, gren fra det forpliktelsen, lage en ny kode og tilbakestille gjeldende gren til det forpliktelsen. 

La oss se på hvordan vi kan se hvilken kode som ble lagt til, redigert eller fjernet. Med andre ord, vi ønsker å sjekke ut - mer detaljert - endringene gjort. 

Bare klikk på show diff ikonet over vinduet der filene påvirket av commit er vist. En snarvei er å bruke Kontroll-D eller å dobbeltklikke på filen eller mappen. 

Det du ser er en Vis Diff dialog, som viser forskjellene mellom forrige commit og det valgte commit. 

Et grønt område i filen fremhever linjer som ble lagt til fil-du bør se noen om du følger med. Grå regioner markerer linjer som ble fjernet. Og blå fremhever linjer som ble endret. Prøv å utforske filtre og ikonknappene som er tilgjengelige øverst på siden Vis Diff dialog for å lære mer om det. 

Merk at du også kan se endringer i bilder i Vis Diff dialog!

Ved å høyreklikke på en fil, har du også muligheten til å se forskjellen mellom den siste forplikten og gjeldende forpliktelse for den fil-show diff (snarvei Kontroll-D). Du kan også redigere kilden (F4), åpne versjonen i depotet, returner valgte endringer, vis historikk for revisjonen, og vis detaljer om commit for den filen.

6. Opprette en Git Branch

Mestergrenen vil være gjeldende som standard. Imidlertid anbefales det å alltid forgrene seg fra mesteren og gjøre arbeidet ditt på en egen, spesialavhengig gren. Når du er ferdig med å kode funksjonen din (og når du har testet endringene dine), smelter du deretter endringene til hovedgrenen. 

La oss se hvordan du lager en gren fra mesteren. 

Gå til nederste høyre hjørne av Android Studio og klikk på Git: master nedtrekksmenyen. 

Klikk på Ny gren knapp. 

Skriv inn grennavnet. I vårt tilfelle, bruk dev

Til slutt klikker du på OK knappen for Android Studio for å automatisk opprette devgren og også kassa til den grenen. 

Vi er nå i dag devgren. Som du kan se nedenfor:

Under hetten utfører Android Studio kommandoen:

 git checkout-b dev

Legg merke til at vi også kan opprette en ny filial ved å navigere til VCS> Git> Grener> Ny gren

7. Fusjonering av Git-grener

Inne i dev gren, bare opprett en grunnleggende aktivitet ProfileActivity.kt og dens layoutfiler og forplikte dine endringer. Vi skal se hvordan vi kan fusjonere devå mestre rett inne i Android Studio. 

Gå og sjekk ut fra den nåværende grenen (dev) til master-grenen (som betyr at vi bytter fra devtil mesteren). 

Merge, Checkout, Slett, Sammenlign, Rename Branch

Hvis du klikker på en avdeling, blir du vist noen operasjoner du kan utføre på den grenen. Operasjonene omfatter sammenslåing, sammenligning av to grener, omdøping av grenen, gjenoppretting, sjekking og sletting av grenen. 

Vi skal se på hvordan man kan slå sammen en filial i dette innlegget. I hovedgrenen flettes dev gren i ved å navigere til dev gren og klikk Slå sammen i menyen. 

Det er det! Vi har nå fusjonert vår dev-filial til master-grenen. 

Bak kulissene utfører Android Studio kommandoen:

git merge dev

Legg merke til at vi også kan gjøre avansert fusjon rett innenfor Android Studio. Vi kan spesifisere sammenslåingsstrategien (Løs, rekursiv, blekksprut, Ours eller Subtree) eller ikke å bruke hurtigspolingsmodusen. 

For å sette opp dette ved sammenslåing, naviger til VCS> Git> Merge Changes ...

Her kan du velge flere grener for å slå sammen, velge fusjonsstrategi og skrive en commit-melding. Det anbefales på det sterkeste at du virkelig forstår disse sammenslåingsstrategiene, og om du skal bruke hurtigspolingsmodusen før du slår sammen. 

8. Skubbe til et fjernlager

Hvert Git-prosjekt skal ha et eksternt eller sentralt lagringssted der andre utviklere kan samarbeide på prosjektet fra hvor som helst i verden. I Android Studio er det også mulig å presse våre forpliktelser eller endringer i et eksternt lager. For å gjøre det, naviger til VCS> Git> Push ...  

Her kan vi legge til nettadressen til ekstern depot ved å klikke på Definer fjernkontroll lenke i Push Commits dialog som dukker opp. Til slutt klikker du på Trykk knappen når du er ferdig! En snarvei er å bruke Kontroll-Skift-K

Android Studio kjører følgende kommando bak kulissene:

git push

Du kan også raskt gjøre en forpliktelse med et trykk ved å klikke på commit-endringsikonet i hovedverktøylinjen eller ved hjelp av Kontroll-K

9. Trekk fra et fjernlager

For å oppdatere prosjektet (for å trekke) med de siste endringene fra fjernregisteret (du burde allerede ha lagt til den eksterne opprinnelsen), naviger til VCS> Git> Trekk. Dette oppdaterer automatisk ditt Android Studio-prosjekt med den nyeste koden fra fjernregisteret. 

For å starte en trekk, kan du også klikke på oppdateringsprosjektikonet i hovedverktøylinjen eller bruke Kontroll-T snarvei. 

Hvis du gjør dette, vil Android Studio utføre Git dra kommandoen bak kulissene:

git pull 

Vær oppmerksom på at hvis du møter en sammenføyningskonflikt mens du drar eller skyver, viser Android Studio en veldig praktisk flette konfliktdialog som hjelper deg med å løse den konflikten. 

Konklusjon

I denne opplæringen lærte du hvor lett det er å utføre forskjellige Git-operasjoner du vanligvis gjør på kommandolinjen eller i terminalen. Bruke Android Studios Git-verktøy gjør det enklere og mer effektivt å samarbeide på Android-prosjekter med andre utviklere. 

For å lære mer om koding for Android, sjekk ut noen av våre andre kurs og opplæringsprogrammer her på Envato Tuts+!