Eenvoudige versiebeheer met Git in Android Studio

Zoals u weet, is het de beste gewoonte om altijd broncontrolebeheer (SCM) voor uw projecten te gebruiken, zelfs voor persoonlijke projecten. Wist u dat Android Studio een geweldige integratie met Git heeft voor broncontrolebeheer? Als je niet weet of geen ervaring hebt met het gebruik ervan, ga dan door met lezen van dit bericht. Zelfs als u de Git-integratie van Android Studio al hebt gebruikt, kunt u in dit bericht nog steeds enkele nuttige trucs opnemen.

Ik laat je de vele functies van Git-ondersteuning in Android Studio zien en ook hoe gemakkelijk het is om de verschillende Git-bewerkingen (commit, push, pull, branch, etc.) vanuit Android Studio uit te voeren. 

In deze zelfstudie doorloop ik de lijst met SCM-functies die beschikbaar zijn in Android Studio. We zullen kijken naar de volgende gebieden:

  • een nieuw Android Studio-project integreren met Git
  • werken met GitHub of Bitbucket
  • het verkennen van de Versiebeheer venster
  • begaat
  • takken 
  • duwen en trekken vanuit een externe repository

voorwaarden

Als je deze zelfstudie wilt kunnen volgen, heb je het volgende nodig:

  • een basiskennis van het Git distributed version control-systeem
  • Android Studio 3.0 of hoger

1. Maak een Android Studio-project

Start Android Studio en maak een nieuw project (u kunt het een naam geven GitApplicationDemo) met een lege activiteit genaamd Hoofdactiviteit

2. Git integreren 

Nadat uw Android Studio-project is ingesteld, klikt u op VCS menu, zweef op de Importeer in versiebeheer menu en selecteer Git Repository maken ...

Selecteer vervolgens de bovenste bovenliggende map van uw Android Studio Project.

Klik op de OK om het project met Git te initialiseren. Onder de motorkap voert Android Studio de opdracht Git uit:

git init

Ter herinnering, hier is wat deze opdracht zal doen: 

Deze opdracht maakt een lege Git-repository aan - eigenlijk een .git map met submappen voor voorwerpenrefs / headsrefs / markeringen, en sjabloonbestanden. Een initiaal HOOFD bestand dat verwijst naar de HEAD van de master branch wordt ook gemaakt.

Er verschijnt een informatiedialoog: 

Dit vertelt ons over een bestand met de naam vcs.xml binnen in de .idee map. Deze map bevat alleen projectspecifieke instellingen. Merk op dat dit het formaat is dat wordt gebruikt door alle recente IntelliJ IDEA-versies.

Idealiter zijn de bestanden in de .idee/ zou Git niet moeten bereiken, dus je zou het moeten toevoegen .gitignore

Standaard zijn we overgeschakeld naar de hoofdtak. Je kunt altijd de huidige branch van je project bekijken in de rechterbenedenhoek van Android Studio. 

3. Integratie met GitHub of Bitbucket

U kunt eenvoudig werken in een van uw Android-broncode-repository in een GitHub- of Bitbucket-account in Android Studio. Ik zal je laten zien hoe je dat moet doen. 

Navigeren naar Bestand> Nieuw> Project from Version Control> GitHub

(Als u aan een repo van Bitbucket wilt werken, selecteert u BitBucket in plaats daarvan. Als u alleen een Git-repo van internet naar uw lokale computer wilt klonen, selecteert u de Git menu-optie.)

Voer vervolgens de inloggegevens van uw GitHub-account in en klik op Log in

Als de login succesvol was, de Clone Repository dialoogvenster verschijnt. In dit dialoogvenster wordt een vervolgkeuzelijst weergegeven met een lijst met opslagplaatsen op GitHub waar u momenteel eigenaar van bent of waaraan u hebt gewerkt.

Klik Clone om de repo naar uw lokale computer binnen de reeds geselecteerde bovenliggende map te klonen.  

4. Het versiecontrolevenster

Nadat we met succes ons Android Studio-project met Git hebben geïnitieerd, zal Android Studio het Versiebeheer venster. Klik op de Versiebeheer tabblad (linksonder in Android Studio) en laten we bekijken wat we daar hebben. Merk op dat je kunt gebruiken Alt-9 om dit venster snel te openen. 

In dit venster hebben we drie verschillende tabbladen: Lokale wijzigingen, Troosten, en Log

De lokale wijzigingen Tab

Dit toont de lijst met bestanden die lokaal zijn aangepast (op uw eigen computer) en nog niet zijn toegewezen aan de repository. 

Laten we eens kijken naar de beschikbare itembalken die beschikbaar zijn in de Lokale wijzigingen tab.

  1. Klik op dit pictogram om de status van uw bestanden op de huidige werkplek te vernieuwen. De snelkoppeling is Besturing F5
  2. Dit pictogram wanneer erop wordt geklikt, verplicht je huidige wijzigingen. De snelkoppeling is Ctrl-Alt-Z.
  3. Klik op dit pictogram om alle geselecteerde wijzigingen ongedaan te maken. 
  4. Klik op dit pictogram om een ​​nieuwe changelist te maken. Houd er rekening mee dat een changelist een reeks wijzigingen in bestanden is die een logische wijziging in de broncode vertegenwoordigt. De snelkoppeling is Alt-Insert
  5. Klik op deze knop om de geselecteerde changelist te verwijderen. 
  6. Klik op dit pictogram om een ​​changelist actief te maken. 
  7. Klik op dit pictogram om een ​​geselecteerd bestand naar een andere changelist te verplaatsen. 
  1. Klik op dit pictogram om uit te vouwen om alle bestanden te bekijken. 
  2. Klik op dit pictogram om alle bestanden samen te vouwen. 
  3. Klik op dit pictogram om de gewijzigde bestanden weer te geven die zijn gegroepeerd op mappen. 
  4. Klik op dit pictogram om het pad naar het geselecteerde bestand naar het klembord van het systeem te kopiëren. 
  5. Klik op dit pictogram om het genegeerde bestandsknooppunt weer te geven met de lijst met bestaande bestanden genegeerd door Git.
  6. Klik op dit pictogram om de lijst met bestanden in te stellen die door Git worden genegeerd. 
  7. Klik op dit pictogram om het te openen Voorbeeld van Diff deelvenster om het huidige bestand te vergelijken met de meest recente geëigende revisie. 

De console Tab

Binnen dit tabblad zien we het resultaat van het uitvoeren van Git-gerelateerde opdrachten. Merk op dat je Git-commando's niet in dit tabblad kunt schrijven - doe dat in het terminalvenster in Android Studio. 

Het log-tabblad

Dit tabblad toont alle wijzigingen die zijn doorgevoerd in alle takken van de lokale en externe repository. Op dit tabblad kunt u door commits bladeren naar elk filiaal. 


Het zoekvak wordt gebruikt om te zoeken naar commits met de ingevoerde tekenreeks of een reguliere expressie. 

  1. Deze vervolgkeuzelijst die wordt gebruikt om commits per filiaal te filteren. Om alle lokale en externe commits te bekijken, selecteert u gewoon Allemaal (de standaard). 
  2. Gebruik deze vervolgkeuzelijst om commits van de auteur te filteren. Je moet de naam van de auteur typen om hun commits te bekijken. kiezen Allemaal om commits van alle gebruikers te bekijken. 
  3. Gebruik deze vervolgkeuzelijst om commits te filteren op een tijdbereik of voor een specifieke datum. Om specifiek te zijn op de datum, klikt u gewoon op kiezen en kies de datum. kiezen Allemaal om commits te bekijken die op alle datums zijn gemaakt. 
  4. Gebruik deze vervolgkeuzelijst om commits te filteren op het pad van gewijzigde bestanden. 
  5. Deze knop (IntelliSort) maakt een gemakkelijkere manier om samenvoegingen te zien, door eerst de inkomende commits te tonen, direct onder de merge commit. 
  6. Als deze knop is ingeschakeld, worden lange takken volledig weergegeven, zelfs als er geen commits in staan. 
  7. Gebruik deze knop om de lijst met commits in het project te vernieuwen. 
  8. Gebruik deze knop om naar een hash, tag of branch te gaan. 
  9. Klik op deze knop om wijzigingen door te voeren van de geselecteerde commit naar de huidige branch. 
  10. Klik op deze knop om de commits uit de geselecteerde tak te markeren die nog niet op de huidige tak zijn toegepast. 

U kunt meer leren over de Versiebeheer toolvenster in de IntelliJ IDEA-documentatie. 

5. Een commit maken

U zult merken dat toen we de Git-integratie met ons Android Studio-project instelden, de kleur van onze bestandsnaam bruin werd. Volgens de officiële IntelliJ IDEA-documentatie voor bestanden met bruine labels:

Bestand bestaat lokaal, maar bevindt zich niet in de repository en is niet gepland voor toevoegen. 

Laten we nu kijken hoe we een commit kunnen maken in Android Studio. Maar eerst moeten we onze wijzigingen in de werkdirectory toevoegen aan het verzamelgebied. In de console zouden we de git add commando. 

git add  || 

Maar we kunnen dit recht doen vanuit Android Studio. Selecteer de Bestanden zonder versiebeheer drop-down in de Lokale wijzigingen tab, klik met de rechtermuisknop en ga naar Git> Toevoegen of gebruik Ctrl-Alt-A. Houd er rekening mee dat als u de hoofdmap selecteert, alles daarin wordt toegevoegd aan het verzamelgebied. 

Nu ziet u dat de kleuren van uw bestandslabels zijn veranderd van bruin naar groen. Dit is wat de IntelliJ IDEA-documentatie zegt over bestandsnamen die groen gekleurd zijn: 

Bestand is gepland voor toevoeging aan de repository. 

Voor meer informatie over de verschillende kleuren die een bestandsnaam kan hebben, afhankelijk van de bestandsstatus in Android Studio (IntelliJ IDEA), raadpleegt u de documentatie met de hoogtepunten van de bestandsstatus.. 

Om eindelijk onze wijzigingen door te voeren, klikt u op de knop Verander veranderingen in de Lokale wijzigingen tab en de Wijzigingen toewijzen dialoogvenster verschijnt. 

  1. Hier kunnen we bestanden selecteren of deselecteren die moeten worden opgenomen in deze commit. Standaard zijn alle gefaseerde bestanden gecontroleerd. 
  2. Schrijf hier je commit-bericht op. Als u een eerder geschreven commit-bericht hebt, wordt dit hier standaard weergegeven. 
  3. Selecteer bewerking (en) die u wilt uitvoeren voordat u naar Git commit. 
  4. Zij-aan-zij vergelijking van de gewijzigde bestanden. 
  5. Met deze vervolgkeuzelijst kunt u vastleggen en duwen of gewoon vastleggen. 

Dus om een ​​commit te maken, laten we een commit-bericht schrijven:

Eerste commit 

kiezen plegen in de plegen drop-down om je wijzigingen definitief vast te leggen. Merk op dat u de snelkoppeling kunt gebruiken Controle-K om op elk gewenst moment wijzigingen door te voeren vanuit Android Studio. 

Als u nu opnieuw de Lokale wijzigingen tab in de Versiebeheer venster, u zult geen van uw bestanden daar meer zien, omdat we ze met succes hebben vastgelegd voor onze lokale repo. 

Merk op dat je ook kunt navigeren naar VCS> Git> Commit-bestand ...  om een ​​commit te maken en VCS> Git> Toevoegen om een ​​bestand voor staging toe te voegen. Bovendien kunt u op het pictogram Veranderingen toewijzen in de hoofdwerkbalk in Android Studio klikken om snel een commit te maken (of commit en push). 

In onze MainActivity.kt klas, ik deed een eenvoudige wijziging in de klas door te negeren onResume (). U zult opmerken dat de bestandsnaamkleur na de wijziging nu blauw is; dit betekent dat we het bestand hebben aangepast. 

Het Commit Log bekijken

Nu, opnieuw bezoeken Versiebeheer venster nogmaals en ga naar de Log tab. Wat u nu ziet zijn de commits die aan dit project zijn gedaan. Voor meer details over elke commit klikt u erop. 

  1. Dit hoofdvenster toont alle commits in het project volgens het geselecteerde filter. Met andere woorden, dit toont ons de commit-geschiedenis. 
  2. In dit paneel worden de bestanden en mappen weergegeven die worden beïnvloed door de commit die is geselecteerd in het venster van de geschiedenis vastleggen. 
  3. In dit paneel worden meer details over de geselecteerde commit weergegeven. 

Door met de rechtermuisknop op een commit te klikken, kunt u ook een menu zien waarmee u het revisienummer kunt kopiëren, een patch kunt maken, een revisie kunt bekijken, kunt vertakken van die commit, een nieuwe tag kunt maken en de huidige branch naar die commit kunt resetten. 

Laten we nu kijken naar hoe we kunnen bekijken welke code is toegevoegd, bewerkt of verwijderd. Met andere woorden, we willen meer in detail bekijken - de aangebrachte wijzigingen. 

Klik eenvoudig op het pictogram voor de weergave diff boven het venster waarin de bestanden worden weergegeven die door de commit zijn getroffen. Een snelkoppeling is om te gebruiken Controle-D of om op het bestand of de map te dubbelklikken. 

Wat je zult zien is een Verschil tonen dialoog, die de verschillen toont tussen de vorige commit en de geselecteerde commit. 

Een groen gekleurd gebied in het bestand markeert lijnen die aan het bestand zijn toegevoegd - je zou er enkele moeten zien als je meegaat. Grijze gebieden markeren lijnen die zijn verwijderd. En blauwe markeringen die zijn gewijzigd. Probeer de filters en pictogramknoppen te verkennen die beschikbaar zijn bovenaan de Verschil tonen dialoogvenster om er meer over te leren. 

Merk op dat u ook wijzigingen in afbeeldingen in de map kunt zien Verschil tonen dialoog!

Door met de rechtermuisknop op een bestand te klikken, hebt u ook de mogelijkheid om het verschil te zien tussen de laatste commit en de huidige commit van dat diff-bestand (diff tonen) Controle-D). U kunt ook de bron bewerken (F4), open de versie in de repository, revert geselecteerde wijzigingen terug, toon de geschiedenis voor de revisie en toon details van de commit voor dat bestand.

6. Een Git Branch creëren

De hoofdtak is standaard actief. Het is echter aan te raden om altijd uit de master te vertakken en uw werk te doen op een afzonderlijke, kenmerkspecifieke branch. Wanneer u klaar bent met het coderen van uw functie (en wanneer u uw wijzigingen hebt getest), voegt u uw wijzigingen samen in de hoofdtak. 

Laten we eens kijken hoe je een filiaal van de meester kunt maken. 

Ga naar de rechterbenedenhoek van Android Studio en klik op de Git: meester drop-down menu. 

Klik op de Nieuwe tak knop. 

Voer de filenaam in. Gebruik in ons geval dev

Klik ten slotte op OK knop voor Android Studio om automatisch de devfiliaal en ook afrekenen naar dat filiaal. 

We zijn nu op dit moment in de devtak. Zoals je hieronder kunt zien:

Onder de motorkap voert Android Studio het commando uit:

 git checkout -b dev

Merk op dat we ook een nieuw filiaal kunnen creëren door naar te navigeren VCS> Git> Branches> Nieuwe vestiging

7. Git Branches samenvoegen

Binnen in de dev branch, maak gewoon een basisactiviteit ProfileActivity.kt en de lay-outbestanden en zet uw wijzigingen vast. We gaan kijken hoe we kunnen samenvoegen devte beheersen in Android Studio. 

Ga naar het huidige filiaal (dev) naar de hoofdtak (wat betekent dat we overschakelen van devnaar de meester). 

Samenvoegen, afrekenen, verwijderen, vergelijken, vertakking wijzigen

Als u op een filiaal klikt, ziet u een aantal bewerkingen die u op dat filiaal kunt uitvoeren. De bewerkingen omvatten samenvoegen, het vergelijken van twee takken, het hernoemen van het filiaal, het rebasen, het uitchecken en het verwijderen van het filiaal. 

We gaan kijken naar hoe je een filiaal kunt samenvoegen in dit bericht. Voeg in de hoofdtak de dev vertakken door naar de. te navigeren dev vertakken en klikken samensmelten in het menu. 

Dat is het! We hebben nu onze dev branch met succes samengevoegd tot de master branch. 

Achter de schermen voert Android Studio het commando uit:

git voeg dev samen

Houd er rekening mee dat we ook geavanceerde samenvoegingen rechtstreeks in Android Studio kunnen uitvoeren. We kunnen de samenvoegstrategie (Oplossen, Recursief, Octopus, Ours of Subboom) specificeren of de snel vooruitspoelende modus niet gebruiken. 

Als u dit wilt instellen bij het samenvoegen, gaat u naar VCS> Git> Wijzigingen samenvoegen ...

Hier kunt u meerdere branches selecteren om samen te voegen, de samenvoegstrategie selecteren en een commit-bericht schrijven. Het wordt ten zeerste aanbevolen dat u deze samenvoegstrategieën echt begrijpt en of u de snel vooruit-modus gebruikt voordat u samenvoegt. 

8. Duwen naar een Remote Repository

Elk Git-project zou een externe of centrale repository moeten hebben waar andere ontwikkelaars van overal ter wereld aan het project kunnen samenwerken. In Android Studio is het ook mogelijk om onze commits of wijzigingen naar een externe repository te pushen. Ga hiervoor naar VCS> Git> Push ...  

Hier kunnen we de URL van de externe repository toevoegen door op de Definieer afstandsbediening link in de Druk op Commits dialoogvenster dat verschijnt. Klik ten slotte op de Duwen knop wanneer klaar! Een snelkoppeling is om te gebruiken Ctrl-Shift-K

Android Studio voert de volgende opdracht achter de schermen uit:

git push

Je kunt ook snel een commit maken door te klikken op het commit-veranderingen-pictogram in de hoofdwerkbalk of met Controle-K

9. Nemen uit een Remote Repository

Als u uw project wilt bijwerken (om een ​​pull te maken) met de nieuwste wijzigingen van de externe repository (u moet de externe oorsprong al hebben toegevoegd), navigeert u naar VCS> Git> Trek. Hiermee wordt uw Android Studio-project automatisch bijgewerkt met de meest recente code uit de externe repository. 

Om een ​​pull te initiëren, kunt u ook klikken op het update-projectpictogram in de hoofdwerkbalk of gebruik de Controle-T kortere weg. 

Als u dit doet, voert Android Studio de Git uit Trekken commando achter de schermen:

git pull 

Houd er rekening mee dat als u een samenvoegingsconflict tegenkomt tijdens het trekken of duwen, Android Studio een echt handig dialoogvenster voor samenvoegingsconflicten laat zien die u zullen helpen om dat conflict op te lossen. 

Conclusie

In deze tutorial leer je hoe gemakkelijk het is om verschillende Git-bewerkingen uit te voeren die je normaal gesproken op de opdrachtregel of in de terminal doet. Het gebruik van de Git-hulpmiddelen van Android Studio maakt het eenvoudiger en efficiënter om samen te werken aan Android-projecten met andere ontwikkelaars. 

Voor meer informatie over codering voor Android, bekijk enkele van onze andere cursussen en tutorials hier op Envato Tuts+!