Som du ved, er det den bedste praksis altid at bruge kildekontrolstyring (SCM) til dine projekter – selv personlige projekter. Vidste du, at Android Studio har en fantastisk integration med Git til kildekontrolstyring? Hvis du ikke vidste det eller ikke har erfaring med at bruge det, så fortsæt med at læse dette indlæg. Selv hvis du allerede har brugt Android Studios Git-integration, kan du måske stadig hente nogle nyttige tricks i dette indlæg.
Jeg vil vise dig de mange funktioner i Git-understøttelsen i Android Studio, og også hvor nemt det er at udføre de forskellige Git-operationer (commit, push, pull, branch osv.) inde fra Android Studio.
I denne vejledning vil jeg gennemgå listen over SCM-funktioner, der er tilgængelige i Android Studio. Vi vil se på følgende områder:
- integrering af et nyt Android Studio-projekt med Git
- arbejde med GitHub eller Bitbucket
- udforskning af vinduet Versionskontrol
- commits
- branches
- pushing og pulling fra et eksternt repository
- Forudsætninger
- 1. Opret et Android Studio-projekt
- 2. Integrering af Git
- 3. Integration med GitHub eller Bitbucket
- 4. Versionskontrolvinduet
- Fanen Lokale ændringer
- Fanen Konsol
- Fanen Logbog
- 5. Foretagelse af en commit
- Visning af bekræftelsesloggen
- 6. Oprettelse af en Git-gren
- 7. Sammenlægning af Git-brancher
- Sammenlægning, Checkout, Slet, Sammenlign, Omdøb gren
- 8. Pushing til et fjernrepositorium
- 9. Trække fra et fjernrepositorium
- Konklusion
Forudsætninger
For at kunne følge denne vejledning, skal du bruge:
- en grundlæggende forståelse af det distribuerede versionskontrolsystem Git
- Android Studio 3.0 eller højere
1. Opret et Android Studio-projekt
Opstart Android Studio, og opret et nyt projekt (du kan give det navnet GitApplicationDemo
) med en tom aktivitet kaldet MainActivity
.
2. Integrering af Git
Når dit Android Studio-projekt er blevet oprettet, skal du klikke på VCS-menuen, holde musen over menuen Importer til versionskontrol og vælge Opret Git-repositorium…
Vælg derefter den øverste overordnede mappe for dit Android Studio-projekt.
Klik på OK-knappen for at initialisere projektet med Git. Under motorhjelmen udfører Android Studio Git-kommandoen:
git init
Som en påmindelse er her, hvad denne kommando vil gøre:
Denne kommando opretter et tomt Git-repository – i princippet en
.git
-mappe med undermapper tilobjects
,refs/heads
,refs/tags
og skabelonfiler. Der oprettes også en indledendeHEAD
fil, der refererer til HEAD i mastergrenen.
Der vises en informationsdialog:
Dette fortæller os om en fil ved navn vcs.xml inde i mappen .idea. Denne mappe indeholder kun projektspecifikke indstillinger. Bemærk, at dette er det format, der bruges af alle nyere IntelliJ IDEA-versioner.
Ideelt set skal filerne i .idea/
ikke nå Git – så du skal tilføje den til .gitignore
.
Som standard er vi skiftet til mastergrenen. Du kan altid se dit projekts aktuelle gren i det nederste højre hjørne af Android Studio.
3. Integration med GitHub eller Bitbucket
Du kan nemt arbejde på ethvert af dine Android-kildekodeopbevaringssteder, der er på en GitHub- eller Bitbucket-konto i Android Studio. Lad mig vise dig, hvordan du kan gøre det.
Navigér til Fil > Nyt > projekt fra Versionskontrol > GitHub.
(Hvis du vil arbejde på en repo fra Bitbucket, skal du i stedet vælge Bitbucket. Hvis du blot vil klone et Git-repo fra internettet til din lokale maskine, skal du vælge menupunktet Git.)
Næst skal du indtaste dine GitHub-kontooplysninger og klikke på Login.
Hvis login var vellykket, vises dialogboksen Clone Repository. Denne dialogboks viser en rulleliste med en liste over repositories på GitHub, som du i øjeblikket ejer eller har arbejdet på.
Klik på Klon for at klone repo’en til din lokale maskine inden for den allerede valgte overordnede mappe.
4. Versionskontrolvinduet
Når det er lykkedes at igangsætte vores Android Studio-projekt med Git, viser Android Studio vinduet Versionskontrol. Klik på fanen Versionskontrol (nederst til venstre i Android Studio), og lad os udforske, hvad vi har der. Bemærk, at du kan bruge Alt-9 til at åbne dette vindue hurtigt.
Inden for dette vindue har vi tre forskellige faner: Lokale ændringer, Konsol og Log.
Fanen Lokale ændringer
Dette viser listen over filer, der er blevet ændret lokalt (på din egen maskine) og endnu ikke er blevet overført til repositoriet.
Lad os tage et kig på de emneværktøjslinjer, der er tilgængelige, når du er på fanen Lokale ændringer.
- Klik på dette ikon for at opdatere status for dine filer på den aktuelle arbejdsplads. Genvejen er Control-F5.
- Dette ikon, når du klikker på det, vil bekræfte dine aktuelle ændringer. Genvejen er Control-Alt-Z.
- Klik på dette ikon for at rulle alle valgte ændringer tilbage.
- Klik på dette ikon for at oprette en ny ændringsliste. Bemærk, at en ændringsliste er et sæt af ændringer i filer, der repræsenterer en logisk ændring i kildekoden. Genvejen er Alt-Insert.
- Klik på denne knap for at slette den valgte ændringsliste.
- For at gøre en ændringsliste aktiv skal du blot klikke på dette ikon.
- For at flytte en valgt fil til en anden ændringsliste skal du klikke på dette ikon.
- Klik på dette ikon for at udvide for at få vist alle filer.
- Klik på dette ikon for at klappe alle filer sammen.
- Klik på dette ikon for at vise de ændrede filer, som er grupperet efter mapper.
- Klik på dette ikon for at kopiere stien til den valgte fil til systemets udklipsholder.
- Klik på dette ikon for at få vist noden ignorerede filer med listen over eksisterende filer, der ignoreres af Git.
- Klik på dette ikon for at opsætte listen over filer, der ignoreres af Git.
- Klik på dette ikon for at åbne ruden Preview Diff for at sammenligne den aktuelle fil med den seneste commitede revision.
Fanen Konsol
I denne fane kan vi se resultatet af udførelsen af Git-relaterede kommandoer. Bemærk, at du ikke kan skrive Git-kommandoer inde i denne fane – det skal du i stedet gøre i terminalvinduet i Android Studio.
Fanen Logbog
Denne fane viser alle ændringer, der blev overført til alle grene af det lokale og eksterne repositorium. Inden for denne fane kan du gennemse commits til enhver gren.
Søgefeltet bruges til at søge efter commits, der har den indtastede streng eller et regulært udtryk.
- Denne dropdown, der bruges til at filtrere commits efter gren. Hvis du vil se alle lokale og eksterne commits, skal du blot vælge All (standard).
- For at filtrere commits efter forfatteren skal du bruge denne rulleliste. Du skal skrive forfatterens navn for at få vist deres commits. Vælg Alle for at få vist commits af alle brugere.
- Brug denne rulleliste for at filtrere commits efter et tidsinterval eller for en bestemt dato. Hvis du vil være specifik med hensyn til datoen, skal du blot klikke på Vælg og vælge datoen. Vælg Alle for at få vist commits foretaget på alle datoer.
- Brug denne rullemenuen til at filtrere commits efter stien til de ændrede filer.
- Denne knap (IntelliSort) giver mulighed for en mere bekvem måde at se sammenlægninger på, ved først at vise de indgående commits direkte under sammenlægningscommitten.
- Hvis denne knap er aktiveret, vises lange grene i deres fulde længde, selv om der ikke er nogen commits i dem.
- Brug denne knap for at opdatere listen over commits i projektet.
- For at gå til en hash, et tag eller en gren skal du blot bruge denne knap.
- Klik på denne knap for at anvende ændringer fra den valgte commit til den aktuelle gren.
- Klik på denne knap for at fremhæve de commits fra den valgte gren, som endnu ikke er blevet anvendt i den aktuelle gren.
Du kan få mere at vide om værktøjsvinduet Versionsstyring i dokumentationen til IntelliJ IDEA.
5. Foretagelse af en commit
Du vil bemærke, at da vi konfigurerede Git-integrationen med vores Android Studio-projekt, blev farven på vores filnavn brun. Ifølge den officielle IntelliJ IDEA-dokumentation gælder følgende for filer med brune etiketter:
Filen findes lokalt, men er ikke i repositoriet og er ikke planlagt til at blive tilføjet.
Lad os nu se, hvordan man laver et commit i Android Studio. Men først skal vi tilføje vores ændringer i arbejdskataloget til staging-området. I konsollen ville vi bruge kommandoen git add
.
git add <file> || <directory>
Men vi kan gøre dette direkte fra Android Studio. Vælg rullemenuen Unversioned Files i fanen Local Changes (Lokale ændringer), højreklik og gå til Git > Add (Git > Tilføj) eller brug Control-Alt-A. Husk, at hvis du vælger rodmappen, tilføjes alt, hvad der ligger i den, til staging-området.
Nu vil du bemærke, at dine filmærkefarver er ændret fra brun til grøn. Her er, hvad IntelliJ IDEA-dokumentationen siger om filnavne, der er farvet grønne:
Filen er planlagt til tilføjelse til repositoriet.
For at få mere at vide om de forskellige farver, som et filnavn kan have afhængigt af filstatus i Android Studio (IntelliJ IDEA), kan du læse dokumentationen om filstatushøjdepunkter.
For endelig at overføre vores ændringer skal du klikke på knappen Overfør ændringer under fanen Lokale ændringer, hvorefter dialogboksen Overfør ændringer vises.
- Her kan vi vælge eller fravælge filer, der skal inkluderes i denne commit. Som standard markeres alle staged-filer.
- Skriv din commit-meddelelse herinde. Hvis du har en tidligere skrevet commit-meddelelse, vil den blive vist her som standard.
- Vælg operation(er), der skal udføres, før du committerer til Git.
- Side-by-side-sammenligning af de ændrede filer.
- Med denne dropdown-knap kan du enten commit og push eller bare commit.
Så for at foretage en commit, skal du skrive en commit-meddelelse:
Initial commit
Vælg Commit i rullemenuen Commit for endelig at committe dine ændringer. Bemærk, at du kan bruge genvejen Control-K til at bekræfte ændringer når som helst fra Android Studio.
Hvis du nu går tilbage til fanen Lokale ændringer i vinduet Versionskontrol, vil du ikke længere se nogen af dine filer opført der – fordi vi har overført dem til vores lokale repo med succes.
Bemærk, at du også kan navigere til VCS > Git > Commit File… for at foretage et commit og VCS > Git > Add for at tilføje en fil til staging. Derudover kan du klikke på commit changes-ikonet i den øverste hovedværktøjslinje i Android Studio for hurtigt at foretage et commit (eller commit og push).
I vores MainActivity.kt-klasse har jeg foretaget en simpel ændring i klassen ved at overskrive onResume()
. Du vil bemærke, at filnavnets farve efter ændringen nu er blå; det betyder, at vi har ændret filen.
Visning af bekræftelsesloggen
Nu skal du gå tilbage til vinduet Versionsstyring endnu en gang og gå til fanen Log. Det, du nu vil se, er de commits, der er blevet foretaget til dette projekt. Hvis du vil have flere detaljer om en commit, skal du blot klikke på den.
- Denne hovedrude viser alle commits på projektet i henhold til det valgte filter. Med andre ord viser den os commit-historikken.
- Denne rude viser de filer og mapper, der er påvirket af den commit, der er valgt i ruden commits historik.
- Denne rude viser flere detaljer om den valgte commit.
Gennem at højreklikke på en commit kan du også se en menu, der giver dig mulighed for at kopiere revisionsnummeret, oprette en patch, tjekke en revision ud, oprette en gren fra den pågældende commit, oprette et nyt tag og nulstille den aktuelle gren til den pågældende commit.
Lad os nu se på, hvordan vi kan se, hvilken kode der er blevet tilføjet, redigeret eller fjernet. Med andre ord ønsker vi at tjekke – i flere detaljer – de ændringer, der er foretaget.
Du skal blot klikke på ikonet show diff over vinduet, hvor de filer, der er påvirket af commit’et, vises. En genvej er at bruge Control-D eller at dobbeltklikke på filen eller mappen.
Det, du får vist, er en dialogboks Show Diff, der viser forskellene mellem den foregående commit og den valgte commit.
Et grønt farvet område i filen fremhæver linjer, der er blevet tilføjet til filen – du burde se nogle, hvis du følger med. Grå regioner fremhæver linjer, der blev fjernet. Og blå fremhæver linjer, der blev ændret. Prøv at udforske de filtre og ikonknapper, der er tilgængelige øverst i dialogboksen Vis Diff, for at lære mere om den.
Bemærk, at du også kan se ændringer i billeder i dialogboksen Vis diff!
Gennem at højreklikke på en fil har du også mulighed for at se forskellen mellem den sidste commit og den aktuelle commit af den pågældende fil – vis diff (genvej Control-D). Du kan også redigere kilden (F4), åbne versionen i repositoriet, tilbageføre valgte ændringer, vise historik for revisionen og vise detaljer om commit for den pågældende fil.
6. Oprettelse af en Git-gren
Mastergrenen vil som standard være aktuel. Det anbefales dog, at du altid forgrener dig fra master og udfører dit arbejde på en separat, funktionsspecifik gren. Når du er færdig med at kode din funktion (og når du har testet dine ændringer), fletter du derefter dine ændringer til mastergrenen.
Lad os se, hvordan du opretter en gren fra masteren.
Gå til det nederste højre hjørne i Android Studio, og klik på rullemenuen Git: master.
Klik på knappen Ny gren.
Indtast navnet på grenen. I vores tilfælde skal du bruge dev.
Slutteligt skal du klikke på OK-knappen for at Android Studio automatisk opretter dev-grenen og også checker ud til denne gren.
Vi er nu i øjeblikket i dev-grenen. Som du kan se nedenfor:
Under motorhjelmen udfører Android Studio kommandoen:
git checkout -b dev
Bemærk, at vi også kan oprette en ny gren ved at navigere til VCS > Git > Branches > New Branch.
7. Sammenlægning af Git-brancher
Inden for dev-branchen skal vi blot oprette en grundlæggende aktivitet ProfileActivity.kt og dens layoutfiler, og overfør dine ændringer. Vi vil se, hvordan du kan flette dev til master direkte i Android Studio.
Gå og check ud fra den aktuelle gren (dev) til mastergrenen (hvilket betyder, at vi skifter fra dev til master).
Sammenlægning, Checkout, Slet, Sammenlign, Omdøb gren
Hvis du klikker på en gren, får du vist nogle operationer, du kan udføre på den pågældende gren. Operationerne omfatter sammenlægning, sammenligning af to grene, omdøbning af grenen, rebasering, udtjekning og sletning af grenen.
Vi vil se på, hvordan man fletter en gren i dette indlæg. I mastergrenen skal du flette dev-grenen ind ved at navigere til dev-grenen og klikke på Flette i menuen.
Det var det! Vi har nu med succes fusioneret vores dev-gren til mastergrenen.
Hinter kulisserne udfører Android Studio kommandoen:
git merge dev
Bemærk, at vi også kan foretage avanceret sammenlægning direkte i Android Studio. Vi er i stand til at angive sammenlægningsstrategien (Resolve, Recursive, Octopus, Ours eller Subtree) eller til ikke at bruge den hurtige sammenlægningstilstand.
For at indstille dette ved sammenlægning skal du navigere til VCS > Git > Sammenlægning af ændringer…
Her kan du vælge flere grene til sammenlægning, vælge sammenlægningsstrategi og skrive en commit-meddelelse. Det anbefales stærkt, at du virkelig forstår disse sammenlægningsstrategier, og om du skal bruge hurtig fremadgående tilstand, før du sammenlægger.
8. Pushing til et fjernrepositorium
Hvert Git-projekt bør have et fjern- eller centralt repositorium, hvor andre udviklere kan samarbejde om projektet fra et hvilket som helst sted i verden. I Android Studio er det også muligt at skubbe vores commits eller ændringer til et eksternt repository. For at gøre det skal du navigere til VCS > Git > Push…
Her kan vi tilføje URL’en til det eksterne repository ved at klikke på linket Define remote i dialogboksen Push Commits, der vises. Endelig skal du klikke på Push-knappen, når du er færdig! En genvej er at bruge Control-Shift-K.
Android Studio udfører følgende kommando bag kulisserne:
git push
Du kan også hurtigt lave et commit med et push ved at klikke på commit changes-ikonet i hovedværktøjslinjen eller ved at bruge Control-K.
9. Trække fra et fjernrepositorium
For at opdatere dit projekt (for at lave et træk) med de seneste ændringer fra fjernrepositoriet (du skal allerede have tilføjet fjernoprindelsen) skal du navigere til VCS > Git > Trække. Dette vil automatisk opdatere dit Android Studio-projekt med den nyeste kode fra fjernrepositoriet.
For at igangsætte et pull kan du også klikke på ikonet opdatere projekt i hovedværktøjslinjen eller bruge genvejen Control-T.
Hvis du gør dette, vil Android Studio udføre Git pull
-kommandoen bag kulisserne:
git pull
Bemærk, at hvis du støder på en sammenlægningskonflikt under pulling eller pushing, vil Android Studio vise en rigtig praktisk dialogboks for sammenlægningskonflikter, som vil hjælpe dig med at løse konflikten.
Konklusion
I denne vejledning har du lært, hvor nemt det er at udføre forskellige Git-operationer, som du typisk kan udføre på kommandolinjen eller i terminalen. Ved at bruge Android Studios Git-værktøjer bliver det nemmere og mere effektivt at samarbejde om Android-projekter med andre udviklere.
For at lære mere om kodning til Android kan du tjekke nogle af vores andre kurser og tutorials her på Envato Tuts+!
-
AndroidVisning af Material Design-dialoger i en Android-appChike Mgbemena
-
AndroidSkab en Material Design Tabbed Interface i en Android-appChike Mgbemena
-
AndroidByg en musik-app med en Android-appskabelonChike Mgbemena