Mi az a GitHub? Mi az a Git? És ezeknek a fejlesztői eszközöknek a használata.

Az első programok, amelyeket írsz, valószínűleg nem lesznek túl hatásosak. Sok hibát fog elkövetni, és soha nem akarja újra felkeresni a múltat.

De hamarosan nagy, összetett programokat fog írni. Lehet, hogy most töröl néhány dolgot, amelyet később vissza akarsz hozni. Vagy esetleg bevisz egy barátot, aki segít, és szeretné kecsesen hozzáadni a változtatásokat a programjához, miközben tovább dolgozik a részeken.

Itt jön be a verziókezelés , és ez egy olyan képesség, amelyet bármely munkaadó elvár, hogy elsajátítsa. Rendkívül hasznos azok számára is, akik bármi dolgon dolgoznak, ami darabokra menthető - a számítógépes programtól a recepten át a regényig.

Mi a verziókezelés?

A verziókezelés arra utal, hogy helyét dokumentumba vagy mappába mentheti, és hivatkozik a korábbi mentésekre.

A cikk írása közben a legújabb változtatásaim folyamatosan felülírják a korábbi verzióimat. Ez nem verziókezelés, mert nem tudok visszatérni az egy héttel ezelőtti tervezethez. De ha ezt a Git segítségével írtam, akkor ez lehetséges.

Mi az a Git?

A Git egy verziókezelő rendszer, amelyet Linus Torvalds fejlesztett ki 2005-ben (ugyanaz a srác, aki Linuxot írt). A Git segít a fejlesztőknek nyomon követni a kódjuk állapotát, és lehetővé teszi az együttműködést egy kódalapon. Kicsit később áttekintjük a főbb összetevőket.

Ha követni akarja, akkor telepítenie kell a Git programot a számítógépére. Nyissa meg a terminált, és írja be git. Ha meglátja a lehetséges parancsok listáját, akkor jó!

Sok számítógéphez a Git már telepítve van. Ha telepítenie kell, kövesse a számítógépére vonatkozó utasításokat.

A Git használatával

Ha valaha is használt számítógépes programot vagy videojátékot, és észrevette, hogy visszatérhet egy korábban mentett verzióhoz, akkor eredendően megértette a Git szükségességét. Ez egyszerűen időben elmenti a program pillanatképét.

De ahelyett, hogy nyomon kellene követnie a program minden egyes kódsorát, megjegyzi a most és a legutóbb mentett kód közötti változásokat. Folyamatos jegyzetet vezet arról, hogy az egyes kódsorokat mikor mentették utoljára, és egy speciális rejtett mappába tárolja.

Vegyük fontolóra ezt a JavaScript programot. Három sort nyomtat a konzolra (egy kimenetet, amelyet a böngészőben vagy a terminálon láthat):

console.log('Hello, this is a git example!') console.log('And here is another!') console.log('And yet a third') 

git init

Ha el akarom menteni a munkám verzióit, használhatom a Git alkalmazást. Először git initbeírom a terminálomat, hogy elkezdhessem használni a Git-et. Ez létrehoz egy .gitmappát, ahol a Git tárolja a fájljait.

git add

git add .hozzáadja a programunk összes fájlját. Ha git inita fájl létrehozása után, vagy bármikor új fájlokat készített, akkor meg kell mondania a Gitnek, hogy kezdje nyomon követni a módosításokat ezzel a paranccsal.

git elkövetni

Ezután beírom git commit -am "Initial commit". git commita kódunk verziójának mentésére szolgáló parancs. Ezt -am"zászlónak" hívják, és jelzi, hogy vannak olyan opcionális műveletek, amelyeket szeretnénk végrehajtani ezzel az elkötelezettséggel. A zászló aazt jelenti, hogy meg fogjuk menteni az összes változásunkat. A zászló mazt jelzi, hogy utána üzenetet adunk, vagyis "Initial commit".

Itt bármit írhat, amit csak akar - a freeCodeCamp számos cikket tartalmaz arról, hogyan lehet nagyszerű elkötelezettségű üzeneteket írni.

Hogyan menti Git a változásokat

Ha változtatunk a programunkon (például megváltoztatjuk az első sor szövegét), érdemes elmenteni egy verziót. Akár váltogathatunk a verziók között, ha meg akarjuk nézni, hogyan változott a programunk az idők során.

console.log('Now I have changed the first line.') console.log('And here is another!') console.log('And yet a third') 

git diff

Így néz ki futás közben git diff. A Git megmutatja a különbséget a kód és a legutóbbi mentés között.

Kicsit nehéz megérteni, mi folyik itt, de a -törlések és a +beillesztések. Eltávolítottuk a "Helló, ez egy git példa!" Szöveget. és szöveget adott hozzá: "Most megváltoztattam az első sort." Git így követi nyomon, mi változott a verziók között.

diff --git a/git.js b/git.js index eb0f1d1..8dbf769 100644 --- a/git.js +++ b/git.js @@ -1,3 +1,3 @@ +console.log('Now I have changed the first line.') -console.log('Hello, this is a git example!') console.log('And here is another!') console.log('And yet a third')

Most, hogy áttekintettük a változtatásokat követnek, akkor megy előre, és egy második követ el: git commit -am 'Update first console log'. Ez elmenti azokat a változtatásokat, amelyeket a szöveg első sorában végrehajtottam.

git napló

A paranccsal áttekinthetjük a vállalt kötelezettségeket git log. Ha most futtatom a programomban, akkor ezt a kimenetet kapom:

commit 67627dd44e84a3106a18a19e94cf9f3723e59b3c (HEAD -> master) Author: amberwilkie  Date: Wed Apr 22 16:55:39 2020 -0400 Update first console log commit 49fe4152f474a9674a83e2b014a08828209d2690 Author: amberwilkie  Date: Wed Apr 22 16:54:59 2020 -0400 Initial commit

Látjuk az elkötelezettségüzeneteinket, az elkötelezett időt és az elkötelezettségünk egyedi azonosítóját, amelyet a jövőben hivatkozhatunk a vállalásokra.

git pénztár

Ha vissza akarunk térni, és meg szeretnénk nézni a korábbi elkötelezettség kódjának változásait, akkor ezt megtesszük git checkout 49fe4152f474a9674a83e2b014a08828209d2690. Git ideiglenes állapotba hozza a kódunkat, így időben megnézhetjük, hogy nézett ki a kód abban a pillanatképben.

Másoltam az első kötelezettségvállalásom azonosítóját. Ha futtatom ezt a parancsot, a programom azt mondja: "Hello, ez egy git példa!" az első sorban.

A legfrissebb kódhoz való visszatéréshez írja be git checkout master.

Ágak

Ha fentebb észrevette, be kellett masterírnunk, hogy visszatérjünk kódunk aktuális állapotához. Miért? Mert masterez az ágak alapértelmezett neve - az a hely, ahol a kódunk a legfrissebb.

A Git kódolásunk fenntartásához az elágazásokra támaszkodik. Megfontolhatja mastera kódfa törzsét. Lehet, hogy elszakad és változtat, de a végső cél mindig az, hogy visszahozza őket a csomagtartóba, a master.

Használhatja git checkoutúj fiók létrehozására, nem csak a kód korábbi verzióinak megtekintésére. Próbáld meg git checkout -b new-branch. A -bzászlót akkor használjuk, amikor új fiókot készítünk, és a zászló után beírjuk az új fiókunk nevét. Sok elköteleződést tehetünk ezen az ágon, és később visszaszerezhetjük őket az összevonás nevű folyamattal .

Az alábbi ábrán a pontok az elkövetéseket jelentik. Két ágat tettek le a mesterről. A szoftverfejlesztés során ezeket gyakran "jellemző" ágaknak nevezzük, szemben a fő törzsággal. A kék ágat visszaolvasztották a masterbe, és a sárga ágat még fejlesztik.

Vegye figyelembe, hogy annak ellenére, hogy a sárga elágazást a kék elágazás után hozták létre, csak a mester változásai lesznek láthatók ebben az ágban. Ha valamikor a jövőben elkészítünk egy harmadik elágazást, akkor mind a mester, mind a kék elágazás változásai jelen vannak az új, harmadik ágban.

git összeolvad

git mergeel fogja végezni az összes elkötelezettséget, amelyet ezen az ágon tett, és az masterágba ragasztja , megtakarítva munkáját.

Miért használja az ágakat?

Ha egyedül dolgozik, akkor nem sok értelme lehet a munkáját ágakra bontani. Miért ne spórolna meg mindent master?

Az elágazás hasznossága csak akkor válik egyértelművé, ha elkezdünk gondolkodni azon, hogy egy fejlesztői csapatban dolgozzunk. Ha mindannyian elköteleznék magukat a masterfióktelep mellett, valahányszor változtatnak, a dolgok nagyon gyorsan rendetlenné válnának. Nehéz lenne szabályozni azt is, hogy melyik kód kerül "gyártásra" (éljen az ügyfelek számára), és melyik kódot tesztelik vagy dolgozzák még fel.

Így minden fejlesztőnek meg lehet a saját ága (vagy valószínűleg sok), dolgozhat a sajátosságán, amíg csak szükséges, és egyesítheti azt, amikor eljön az ideje.

Mi az a GitHub?

A GitHub egy ingyenes (személyes használatra szánt), felhőben tárolt platform a kódokhoz. Úgy működik, Git az Ön és a kollégái számítógépek szolgáló eredetű , a forrás igazság mindazok számára, akik a kódot.

Ön és munkatársai rendszeresen feltöltik kódjukat a GitHub-ba, és a GitHub olyan eszközöket kínál, amelyek elősegítik a kód időbeli változásainak kezelését.

Kódjának feltöltése a GitHub-ba

Először létre kell hoznia egy GitHub-fiókot. Ezt a fiókot a teljes programozási karrierje során fogja használni, ezért olyan tipp: ragaszkodjon egy szakmai névhez, lehetőleg a tényleges nevéhez.

Ha bent van, keressen egy +felső sarokban. Kattintson az "Új adattár" gombra (a Git mappák neve, röviden a "repo"). Adjon nevet - valószínűleg megegyezik azzal a mappával, amelyet korábban létrehozott, ahová elmentette a vállalásait. Ezután kattintson a "Tár létrehozása" gombra. Most átmásolhatja az átirányított URL-t, és beállíthatjuk a kódunk eredetét .

Valamikor itt lesz egy hitelesítési lépés - csak kövesse az utasításokat. Git nagyon jó abban, hogy világos utasításokat adjon nekünk a következő lépésekről.

git távoli eredet hozzáadása

Most elmondjuk a kódalapunknak (a mappának, ahol a kódunk van), hogy hol tároljuk a kódot a felhőben. Gépelünk git remote add origin , amely beállítja origina tárunkat. Most arra törekedhetünk , hogy originfelhőünket a GitHub-nál tároljuk.

git push

Feltételezve, hogy még mindig a fiókunkban vagyunk master(vagyis nem próbáltunk ki másik fiókot), most beírhatjuk, git pushés a kódunk a GitHub-ba kerül.

A kód megtekintése

Most a kódod a GitHubban él! Így néz ki a fenti példám, miután betartom a GitHub magyarázatát:

You can click through the files and folders of your repository, viewing the current state of the code. You can also view previous versions of the code, by clicking "X commits" on the right side, middle. You'll see a list of the commits made to the repo and if you click into them, you can browse the files of your project as they existed at that slice of time.

Pull Requests

There are many other features of GitHub, but the most important in collaborating with colleagues is a pull request. A pull request (very frequently shortened to PR) is a way to manage incoming changes to the code base.

To make one, you'll make a new branch on your local computer, create at least one commit on that branch, then git push origin head to send that branch to GitHub. (You can put the name of your branch instead of head but it's useful for keeping everything matched up exactly).

Now when you go back to GitHub, you should see your branch available to make a PR.

If you click the "Compare & pull request" button, you'll be able to change many settings for your PR. Most important are generally title and description. If you're working on a team, you can tag colleagues to ask them to review your code, add to projects, and many other features you probably don't care about yet.

Note that we are comparing branches. Here we are requesting to add the changes from this branch (pr-example) into the master branch. But we could target any of the other branches in our repo. For now, just understand that master isn't the only branch you can "make a pull request against".

When you click "Create Pull Request", you'll see this screen:

You can see all the commits in this branch (I have only one - "Change third line of program"), and you can also merge your pull request.

Remember how we could merge our code locally when we talked about Git? We can perform the same action with our cloud-hosted code on GitHub. If you click the green "Merge pull request" button, your changes will be merged into master.

git pull

The last command you need to know right now is git pull. If you merged your PR into the master branch on GitHub, there are now changes to the origin that you do not have yet on your local computer. If you check out the master branch, then git pull origin master, the changes you have just merged will now be on your local computer.

➜ git-example git:(master) git pull origin master From //github.com/AmberWilkie/git-example * branch master -> FETCH_HEAD Updating 67627dd..38ad2da Fast-forward git.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)

That "Fast-forward" refers to our local master branch "catching up" with the origin branch on GitHub. We have completed the circle:

  • Local changes
  • Push to GitHub and make PR
  • Merge PR into master
  • Pull master to local computer

Once you are comfortable with these steps, you will be 80% of the way to mastering Git and GitHub!