Mint tudjuk, a legjobb gyakorlat, hogy mindig használjunk forráskódkezelést (SCM) a projektjeinkhez – még a személyes projektekhez is. Tudta, hogy az Android Studio csodálatos integrációval rendelkezik a Gittel a forráskezeléshez? Ha nem tudta, vagy nincs tapasztalata a használatával, akkor olvassa tovább ezt a bejegyzést. Még ha már használta is az Android Studio Git-integrációját, ebben a bejegyzésben akkor is elsajátíthat néhány hasznos trükköt.
Megmutatom az Android Studio Git-támogatásának számos funkcióját, és azt is, hogy milyen egyszerű a különböző Git-műveleteket (commit, push, pull, branch stb.) elvégezni az Android Studióból.
Ezzel a bemutatóval végigvezetem az Android Studio-ban elérhető SCM funkciók listáját. A következő területeket fogjuk megvizsgálni:
- egy új Android Studio projekt integrálása a Gitbe
- működés a GitHubbal vagy a Bitbuckettel
- a verziókezelő ablak felfedezése
- commits
- branches
- pushing and pulling from a remote repository
.
- Prerequisites
- 1. Android Studio projekt létrehozása
- 2. A Git integrálása
- 3. Integrálás a GitHub vagy Bitbucket rendszerrel
- 4. A verziókezelő ablak
- A Helyi változások lap
- A Konzol lap
- A Napló fül
- 5. Commit készítése
- A Commit Log megtekintése
- 6. Fájl commit menü . Git ág létrehozása
- 7. Git ágak egyesítése
- Merge, Checkout, Delete, Compare, Rename Branch
- 8. Távoli tárolóhelyre való áttöltés
- 9. Távoli tárolóból való húzás
- Következtetés
Prerequisites
To be tudod követni ezt a bemutatót, szükséged lesz rá:
- a Git elosztott verziókezelő rendszer alapvető ismerete
- Android Studio 3.0 vagy újabb
1. Android Studio projekt létrehozása
Tüzelje be az Android Studio-t, és hozzon létre egy új projektet (nevezheti GitApplicationDemo
) egy MainActivity
nevű üres tevékenységgel.

2. A Git integrálása
Az Android Studio projekt beállítása után kattintson a VCS menüre, a Verzióvezérlésbe importálás menüpontra, és válassza a Git tároló létrehozása… lehetőséget.

Ezután válassza ki az Android Studio projekt felső szülőmappáját.

Kattintson az OK gombra a projekt Git-tel való inicializálásához. A motorháztető alatt az Android Studio végrehajtja a Git parancsot:
git init
Elmondjuk, hogy mit csinál ez a parancs:
Ez a parancs egy üres Git-tárat hoz létre – lényegében egy
.git
könyvtáratobjects
,refs/heads
,refs/tags
és sablonfájlok alkönyvtáraival. Létrejön egy kezdetiHEAD
fájl is, amely a master ág HEAD-jára hivatkozik.
Egy információs párbeszédpanel jelenik meg:

Ez a .idea mappában található vcs.xml nevű fájlról tájékoztat minket. Ez a mappa csak projektspecifikus beállításokat tartalmaz. Vegyük észre, hogy az IntelliJ IDEA minden újabb verziója ezt a formátumot használja.
Az .idea/
-ban lévő fájloknak nem szabadna eljutniuk a Git-be – tehát a .gitignore
-hez kell hozzáadni.
Egyértelmezés szerint átváltunk a master ágra. A projekt aktuális ágát mindig megtekintheti az Android Studio jobb alsó sarkában.

3. Integrálás a GitHub vagy Bitbucket rendszerrel
Egyszerűen dolgozhat bármelyik Android forráskód-tárhelyén, amely egy GitHub vagy Bitbucket fiókban van az Android Studio-ban. Hadd mutassam meg, hogyan kell ezt megtenni.
Navigáljon a Fájl > Új > projektre a verziókezelő > GitHubból.

(Ha a Bitbucketből származó repón szeretne dolgozni, válassza inkább a Bitbucketet. Ha csak egy Git-repót szeretne klónozni az internetről a helyi gépére, válassza a Git menüpontot.)
A következő lépésben adja meg a GitHub-fiókjának hitelesítő adatait, majd kattintson a Bejelentkezés gombra.

Ha a bejelentkezés sikeres volt, megjelenik a Clone Repository párbeszédpanel. Ez a párbeszédpanel egy legördülő ablakot jelenít meg, amely a GitHubon jelenleg az Ön tulajdonában lévő, vagy az Ön által már megmunkált repók listáját tartalmazza.

Kattintson a Klónozás gombra a repó klónozásához a helyi gépére a már kiválasztott szülői könyvtáron belül.
4. A verziókezelő ablak
A Android Studio projektünk Git-tel történő sikeres elindítása után az Android Studio megjeleníti a verziókezelő ablakot. Kattintsunk a Version Control fülre (az Android Studio bal alsó részén), és vizsgáljuk meg, hogy mi van ott. Megjegyezzük, hogy az Alt-9 billentyűvel gyorsan megnyithatjuk ezt az ablakot.

Az ablakban három különböző lapot találunk: Helyi változások, Konzol és Napló.
A Helyi változások lap
Ez mutatja azoknak a fájloknak a listáját, amelyeket lokálisan (a saját gépünkön) módosítottunk, és még nem rögzítettünk a tárolóba.

Vessünk egy pillantást az elem eszköztárára, amely a Helyi változások lapon elérhető.

- Az aktuális munkahelyen lévő fájlok állapotának frissítéséhez kattintson erre az ikonra. A parancsikon a Control-F5 billentyűkombináció.
- Ez az ikonra kattintva rögzíti az aktuális módosításokat. A parancsikon a Control-Alt-Z.
- Ezzel az ikonra kattintva a kiválasztott módosításokat visszavonhatja.
- Ezzel az ikonnal új változtatási listát hozhat létre. Vegye figyelembe, hogy a changelist a fájlok módosításainak olyan halmaza, amely a forráskód logikai változását jelenti. A gyorsbillentyű az Alt-beillesztés.
- A kijelölt változtatási lista törléséhez kattintson erre a gombra.
- A változtatási lista aktiválásához egyszerűen kattintson erre az ikonra.
- A kijelölt fájl másik változtatási listába történő áthelyezéséhez kattintson erre az ikonra.

- Erre az ikonra kattintva az összes fájl megtekintéséhez bővíthető.
- Az összes fájl összecsukásához kattintson erre az ikonra.
- Kattintson erre az ikonra a mappák szerint csoportosított, megváltozott fájlok megjelenítéséhez.
- Ezzel az ikonnal a kiválasztott fájl elérési útvonalát a rendszer vágólapjára másolhatja.
- Ezzel az ikonnal megjelenítheti a figyelmen kívül hagyott fájlok csomópontot a Git által figyelmen kívül hagyott meglévő fájlok listájával.
- Ezzel az ikonnal beállíthatja a Git által figyelmen kívül hagyott fájlok listáját.
- Ezzel az ikonnal megnyithatja a Preview Diff ablaktáblát, hogy összehasonlítsa az aktuális fájlt a legutóbbi átadott revízióval.
A Konzol lap
Ezen a lapon a Git-tel kapcsolatos parancsok végrehajtásának eredményét láthatjuk. Vegye figyelembe, hogy ezen a lapon belül nem írhat Git-parancsokat – ezt inkább az Android Studio terminálablakában teheti meg.

A Napló fül
Ez a fül mutatja a helyi és a távoli tároló összes ágába lekötött változásokat. Ezen a lapon belül bármelyik ághoz tartozó commitokat böngészheti.

A keresőmezőben olyan commitokat kereshet, amelyek a megadott karakterláncot vagy reguláris kifejezést tartalmazzák.
- Ez a legördülő ablak, amely a commitok ágak szerinti szűrésére szolgál. Az összes helyi és távoli commit megtekintéséhez egyszerűen válassza az All (alapértelmezett) lehetőséget.
- A commitok szerző szerinti szűréséhez használja ezt a legördülő listát. A szerző nevét kell beírnia, hogy megtekinthesse a commitjait. Válassza az All (Minden) lehetőséget az összes felhasználó által készített commitok megtekintéséhez.
- Ezzel a legördülő listával szűrheti a commitokat egy időtartomány vagy egy adott dátum szerint. A dátum meghatározásához egyszerűen kattintson a Kijelölés gombra, és válassza ki a dátumot. Válassza ki a Mindet az összes dátumon készült commit megtekintéséhez.
- Ezzel a legördülő menüponttal szűrheti a commitokat a módosított fájlok elérési útvonala szerint.
- Ez a gomb (IntelliSort) lehetővé teszi az egyesítések kényelmesebb megtekintését, mivel először a beérkező commitokat jeleníti meg, közvetlenül az egyesítési commit alatt.
- Ha ez a gomb be van kapcsolva, a hosszú ágak teljes egészében megjelennek, még akkor is, ha nincsenek bennük commitok.
- Ezzel a gombbal frissítheti a projektben lévő commitok listáját.
- Egy hash, tag vagy ág eléréséhez egyszerűen használja ezt a gombot.
- Ezzel a gombbal a kiválasztott commit módosításait alkalmazhatja az aktuális ágban.
- Ezzel a gombbal jelölheti ki a kiválasztott ág azon commitjait, amelyek még nem kerültek alkalmazásra az aktuális ágra.
A Verzióvezérlő eszköz ablakáról bővebben az IntelliJ IDEA dokumentációban olvashat.
5. Commit készítése
Észre fogja venni, hogy amikor a Git integrációt beállítottuk az Android Studio projektünkkel, a fájlnevünk színe barna lett. A hivatalos IntelliJ IDEA dokumentáció szerint a barna címkével ellátott fájlok esetében:
A fájl lokálisan létezik, de nincs benne a tárolóban, és nincs ütemezve a hozzáadásra.
Lássuk most, hogyan kell commitot készíteni az Android Studio-ban. De először is hozzá kell adnunk a munkakönyvtárban lévő módosításainkat a staging területhez. A konzolon a git add
parancsot használnánk.
git add <file> || <directory>
De ezt közvetlenül az Android Studio-ban is megtehetjük. Válasszuk ki a Helyi változások lapon az Unverzió nélküli fájlok legördülő menüpontot, kattintsunk a jobb gombbal, és válasszuk a Git > Add vagy használjuk a Control-Alt-A-t. Ne feledje, hogy a gyökérmappát kiválasztva mindent hozzáad a staging területhez, ami benne van.

Most megfigyelheti, hogy a fájlcímke színei barnáról zöldre változtak. Az IntelliJ IDEA dokumentációja a következőket mondja a zöld színű fájlnevekről:
A fájl hozzáadása a tárolóhoz be van ütemezve.
Az Android Studio (IntelliJ IDEA) fájlállapotától függően a fájlnevek különböző színeiről többet megtudhat az Android Studio (IntelliJ IDEA) fájlállapot-kiemelések dokumentációjában.
A változtatásaink végleges rögzítéséhez kattintsunk a Helyi változtatások lapon a változtatások rögzítése gombra, és megjelenik a Változások rögzítése párbeszédpanel.

- Itt kiválaszthatjuk vagy visszavonhatjuk azoknak a fájloknak a kijelölését, amelyeknek szerepelniük kell ebben a commitban. Alapértelmezés szerint az összes beállított fájl be van jelölve.
- Itt írjuk meg a commit üzenetet. Ha van korábban megírt commit üzenete, akkor az alapértelmezés szerint itt fog megjelenni.
- Válassza ki a Gitbe történő commitolás előtt végrehajtandó művelet(eke)t.
- A módosított fájlok egymás melletti összehasonlítása.
- Ezzel a legördülő gombbal vagy commit és push, vagy csak commit lehet.
Azért a commithoz írjunk egy commit üzenetet:
Initial commit
A Commit legördülő menüben válasszuk a Commit opciót, hogy véglegesen commitoljuk a változtatásainkat. Ne feledje, hogy az Android Studioból bármikor használhatja a Control-K billentyűparancsot a változtatások rögzítéséhez.
Ha most újra meglátogatjuk a Verzióvezérlés ablakban a Helyi változtatások lapot, már nem fogjuk látni az ott felsorolt fájljainkat – mert sikeresen lekötöttük őket a helyi repónkba.
Megjegyezzük, hogy a VCS > Git > Commit File… parancsra is navigálhatunk, ha commitot szeretnénk végezni, és a VCS > Git > Add parancsra is, ha egy fájlt szeretnénk hozzáadni a staginghez. Ezen kívül az Android Studio felső fő eszköztárában a commit changes ikonra kattintva gyorsan elvégezhet egy commitot (vagy commit és push).

A MainActivity.kt osztályunkban egy egyszerű módosítást végeztem az osztályban a onResume()
felülírásával. Észrevehetjük, hogy a módosítás után a fájlnév színe kék lett; ez azt jelenti, hogy módosítottuk a fájlt.

A Commit Log megtekintése
Most ismét látogassunk el a Verzióvezérlés ablakba, és lépjünk a Log fülre. Amit most látni fogsz, azok a commitok, amelyeket ebben a projektben végeztek. Ha további részleteket szeretne megtudni bármelyik commitról, csak kattintson rá.

- Ez a főablak a projekt összes commitját mutatja a kiválasztott szűrőnek megfelelően. Más szóval, ez mutatja meg nekünk a commit előzményeket.
- Ez a ablaktábla a commitok előzményei ablaktáblában kiválasztott commit által érintett fájlokat és mappákat jeleníti meg.
- Ez a ablaktábla további részleteket jelenít meg a kiválasztott commitról.
Egy commitra jobb gombbal kattintva egy menü is megjelenik, amely lehetővé teszi a revíziószám másolását, javítás létrehozását, egy revízió ellenőrzését, az adott commitból való elágazást, új tag létrehozását és az aktuális ág visszaállítását az adott commitra.

Most nézzük meg, hogyan nézhetjük meg, hogy milyen kódot adtunk hozzá, szerkesztettünk vagy távolítottunk el. Más szóval, meg akarjuk nézni – részletesebben – az elvégzett változtatásokat.
Egyszerűen kattintsunk a show diff ikonra az ablak felett, ahol a commit által érintett fájlok láthatók. Rövidítésként használhatjuk a Control-D billentyűt, vagy duplán kattinthatunk a fájlra vagy mappára.

Miután megjelenik a Show Diff párbeszédpanel, amely megmutatja az előző commit és a kiválasztott commit közötti különbségeket.

A fájlban egy zöld színű régió kiemeli a fájlhoz hozzáadott sorokat – látnia kell néhányat, ha követi a folyamatot. A szürke régiók kiemelik az eltávolított sorokat. Kékkel pedig a megváltoztatott sorokat emeli ki. Próbálja meg felfedezni a Show Diff párbeszédpanel tetején elérhető szűrőket és ikongombokat, hogy többet tudjon meg róla.
Megjegyezzük, hogy a Show Diff párbeszédpanelen a képeken végzett változtatásokat is láthatja!
A fájlra jobb gombbal kattintva lehetőség van arra is, hogy megnézze az adott fájl utolsó és aktuális commitja közötti különbséget – show diff (Control-D gyorsbillentyű). Emellett szerkesztheti a forrást (F4), megnyithatja a verziót az adattárban, visszaállíthatja a kiválasztott változtatásokat, megjelenítheti a revízió előzményeit és az adott fájl commitjának részleteit.
A master ág lesz alapértelmezés szerint az aktuális. Azonban ajánlott mindig elágazni a masterről, és a munkát egy külön, funkcióspecifikus ágon végezni. Ha befejezted a funkció kódolását (és ha tesztelted a változtatásokat), akkor egyesítsd a változtatásaidat a master ágba.
Lássuk, hogyan hozhatunk létre ágat a masterből.
Menjen az Android Studio jobb alsó sarkába, és kattintson a Git: master legördülő menüre.

Kattintsunk az Új ág gombra.

Adja meg az ág nevét. Esetünkben használjuk a dev.

Végül kattintson az OK gombra, hogy az Android Studio automatikusan létrehozza a dev ágat, és ki is jelentkezzen erre az ágra.
Most már a dev ágban vagyunk. Ahogy az alábbiakban látható:

Az Android Studio a következő parancsot hajtja végre:
git checkout -b dev
Megjegyezzük, hogy új ágat is létrehozhatunk a VCS > Git > Branches > New Branch navigációval.
7. Git ágak egyesítése
A dev ágon belül csak hozzunk létre egy alaptevékenységet ProfileActivity.kt és annak layout fájljait, és rögzítse a változtatásokat. Megnézzük, hogyan egyesíthetjük a dev-et a masterrel közvetlenül az Android Studio-ban.
Menjünk és csekkoljunk ki az aktuális ágról (dev) a master ágra (vagyis a dev ágról a master ágra váltunk).
Merge, Checkout, Delete, Compare, Rename Branch
Ha rákattintunk egy ágra, akkor megjelenik néhány művelet, amit az adott ágon végezhetünk. A műveletek közé tartozik az összevonás, két ág összehasonlítása, az ág átnevezése, az ág újraszabályozása, a kijelentkezés és az ág törlése.

Ebben a bejegyzésben egy ág egyesítését fogjuk megvizsgálni. A master ágban egyesítsük a dev ágat a dev ágra navigálva és a menüben a Merge gombra kattintva.

Ez az! Most már sikeresen egyesítettük a dev águnkat a master ággal.

A színfalak mögött az Android Studio végrehajtja a parancsot:
git merge dev
Megjegyezzük, hogy az Android Studióban közvetlenül a fejlett egyesítést is elvégezhetjük. Megadhatjuk az összevonási stratégiát (Resolve, Recursive, Octopus, Ours vagy Subtree), illetve azt is, hogy ne használjuk a gyors összevonási módot.
Ezek beállításához az egyesítés során navigáljunk a VCS > Git > Merge Changes…

Itt kiválaszthatunk több egyesítendő ágat, megadhatjuk az egyesítési stratégiát, és írhatunk egy commit üzenetet. Nagyon ajánlott, hogy valóban megértsd ezeket az összevonási stratégiákat, és hogy használd-e a gyorsító módot az összevonás előtt.
8. Távoli tárolóhelyre való áttöltés
Minden Git-projektnek rendelkeznie kell egy távoli vagy központi tárolóval, ahol más fejlesztők a világ bármely pontjáról együttműködhetnek a projekten. Az Android Studio-ban lehetőség van arra is, hogy commitjainkat vagy változtatásainkat egy távoli tárolóba toljuk. Ehhez navigáljunk a VCS > Git > Push…

Itt a felbukkanó Push Commits párbeszédablakban a Define remote linkre kattintva adhatjuk meg a távoli tároló URL-jét. Végül, ha kész, kattintsunk a Push gombra! Rövidítésként használhatjuk a Control-Shift-K billentyűparancsot.
Az Android Studio a következő parancsot hajtja végre a színfalak mögött:
git push
A Push-tal gyorsan végezhetünk commitot a fő eszköztáron a commit changes ikonra kattintva vagy a Control-K használatával is.

9. Távoli tárolóból való húzás
A projekt frissítéséhez (húzáshoz) a távoli tárolóból származó legfrissebb változtatásokkal (a távoli eredetet már hozzá kellett adnia), navigáljon a VCS > Git > Pull menüpontra. Ez automatikusan frissíti az Android Studio projektjét a távoli tárolóból származó legfrissebb kóddal.
A húzás kezdeményezéséhez a fő eszköztáron a projekt frissítése ikonra is kattinthat, vagy használhatja a Control-T gyorsbillentyűt.

Ha ezt teszi, az Android Studio a színfalak mögött végrehajtja a Git pull
parancsot:
git pull
Megjegyezzük, hogy ha húzás vagy tologatás közben egyesítési konfliktusba ütközik, az Android Studio egy igazán praktikus egyesítési konfliktus párbeszédpanelt jelenít meg, amely segít megoldani a konfliktust.
Következtetés
Ezzel a bemutatóval megtanulta, hogy milyen egyszerűen végezhet különböző Git műveleteket, amelyeket jellemzően a parancssorban vagy a terminálban végezhet. Az Android Studio Git-eszközeinek használatával egyszerűbbé és hatékonyabbá válik az Android-projekteken való együttműködés más fejlesztőkkel.
Ha többet szeretne megtudni az Androidra történő kódolásról, nézze meg más tanfolyamainkat és oktatóanyagainkat itt az Envato Tuts+-on!
- AndroidMaterial Design párbeszédpanelek megjelenítése egy Android alkalmazásbanChike Mgbemena
- AndroidMaterial Design készítése Tabbed Interface in an Android AppChike Mgbemena
- AndroidBuild a Music App With an Android App TemplateChike Mgbemena