Tanulja meg a Git alapjait 10 perc alatt

Igen, a cím kattintható csali. Semmiképpen sem tudja megérteni a git technológia alapjait mindössze 10 perc alatt. De körülbelül 25 perc alatt elég közel lehet. És ez a cikk célja.

Ha el akarja kezdeni a Git technológia elsajátítását, akkor jó helyen jár. Ez egy átfogó kezdő útmutató a Git számára. Sok ügyfél van a Git számára. A technológia mindegy, az ügyféltől függetlenül. De ebben az útmutatóban a GitHub segítségével fogjuk megérteni Git-et.

Kezdjük el!

Mi az a verziókezelés?

A verzióvezérlés olyan rendszer, amely egy fájl vagy fájlkészlet változását rögzíti az idő múlásával, hogy később bizonyos verziókat visszahívhasson. Tehát ideális esetben bármilyen fájlt elhelyezhetünk a számítógépben a verzióvezérlésen.

Umm ... Oké ... De miért Tho?

Itt van miért:

A verziókezelő rendszer (VCS) lehetővé teszi a fájlok visszaállítását egy korábbi állapotba, a teljes projekt visszaállítását egy korábbi állapotba, az idővel végrehajtott változtatások áttekintését, annak megtekintését, hogy ki módosított utoljára valamit, ami problémát okozhat, ki adott be problémát és mikor, és még sok más. A VCS használata azt is jelenti, hogy ha csavarja a dolgokat vagy elveszíti a fájlokat, akkor általában könnyen helyreállhat. És néha csak azt akarja tudni, hogy „ki írta ezt a vacakot” , és érdemes hozzáférni ezekhez az információkhoz?

Tehát mi az a Git?

A Git egy verzióellenőrző rendszer a számítógépes fájlokban bekövetkezett változások nyomon követésére és a fájlokkal kapcsolatos munka összehangolására több ember között. A Git egy elosztott verzióvezérlő rendszer . Tehát a Git nem feltétlenül támaszkodik egy központi szerverre a projekt fájljainak összes verziójának tárolásához. Ehelyett minden felhasználó „klónozza” az adattár (fájlgyűjtemény) másolatát, és a projekt teljes előzményeit a saját merevlemezén tárolja . Ez a klón tartalmazza az eredeti összes metaadatát, miközben maga az eredeti egy saját szerveren szerveren vagy egy harmadik féltől származó tárhelyszolgáltatáson, például a GitHubon van tárolva.

A Git segít nyomon követni a kódban végrehajtott módosításokat. Alapvetően a kódszerkesztő előzményei fül (Nincs inkognitómódja?). Ha a kódolás bármely pontján végzetes hibát talál, és nem tudja, mi okozza, akkor bármikor visszatérhet a stabil állapotba. Tehát nagyon hasznos a hibakeresésben. Vagy egyszerűen megnézheti, hogy az idő múlásával milyen változtatásokat hajtott végre a kódban.

A fenti példában mindhárom kártya ugyanazon fájl különböző verzióit képviseli. Bármikor kiválaszthatjuk a fájl mely verzióját szeretnénk használni. Tehát ide-oda ugorhatok a fájl bármely verziójára a git időtartamban.

A Git segít a kód szinkronizálásában is több ember között. Tehát képzelje el, hogy Ön és barátja együttműködik egy projektben. Mindketten ugyanazokon a projektfájlokon dolgoznak. Most Git elvégzi azokat a változtatásokat, amelyeket ön és barátja önállóan végrehajtott, és egyetlen „ Master ” adattárba egyesíti őket . Tehát a Git használatával biztosíthatja, hogy mindketten a lerakat legújabb verzióján dolgoznak. Tehát nem kell aggódnia a fájlok egymásnak történő postázása és az eredeti fájl nevetséges számú másolata mellett. A hosszú távú együttműködés pedig ugyanolyan egyszerűvé válik, mint a HTML?

Git munkafolyamat:

Mielőtt elkezdenénk dolgozni a Git parancsokkal, meg kell értenie, mit jelent.

Mi az a tár?

A tároló, más néven repo, nem más, mint a forráskód gyűjteménye.

A Git munkafolyamatnak négy alapvető eleme van.

Munkahelyi könyvtár , átmeneti terület , helyi adattár és távoli adattár .

Ha figyelembe vesz egy fájlt a Munkakönyvtárban, akkor az három lehetséges állapotban lehet.

  1. Meg lehet rendezni. Ami azt jelenti, hogy a frissített változtatásokat tartalmazó fájlok megjelölésre kerültek a helyi adattár számára, de még nincsenek lekötve.
  2. Módosítható . Ami azt jelenti, hogy a frissített módosításokat tartalmazó fájlok még nincsenek tárolva a helyi adattárban.
  3. Elkötelezhető . Ami azt jelenti, hogy a fájlban végrehajtott módosításokat biztonságosan tárolja a helyi adattár.
  • git add egy parancs, amelyet a munkakönyvtárban lévő fájl hozzáadásához használnak az átmeneti területhez.
  • git commit egy parancs, amelyet az összes szakaszolt fájl hozzáadásához használnak a helyi adattárhoz.
  • git pusha helyi adattár összes lekötött fájljának hozzáadása a távoli adattárhoz. Tehát a távoli adattárban minden fájl és változás mindenki számára látható lesz, aki hozzáfér a távoli adattárhoz.
  • git fetch egy parancs, amellyel fájlok kerülnek a távoli adattárból a helyi adattárba, a munkakönyvtárba azonban nem.
  • git merge egy parancs, amellyel a fájlok a helyi adattárból a munkakönyvtárba kerülnek.
  • git pulla parancs arra szolgál, hogy fájlokat kapjon a távoli adattárból közvetlenül a munkakönyvtárba. Ez egyenértékű az a-val git fetchés az a-val git merge.

Most, hogy tudjuk, mi a Git, és annak alapvető terminológiái, nézzük meg, hogyan helyezhetünk el egy fájlt a git alatt . Helyesen és nehezen fogjuk megtenni. GUI alkalmazások nélkül.

Feltételezem, hogy már rendelkezik egy fájllal, amelyet verzióellenőrzés alá szeretne helyezni. Ha nem, akkor hozzon létre egy „MuskCult” nevű mintamappát, és tegyen bele néhány minta kód fájlt.

0. lépés: Készítsen GitHub-fiókot. Duh.

Ha még nincs, itt elkészítheti.

1. lépés: Győződjön meg arról, hogy a Git telepítve van a gépére.

Ha Mac számítógépet használ , indítsa el a terminált, és írja be a következő parancsot:

$ git --version

Ez felszólítja a telepítő megnyitását, ha még nincs meg a git. Tehát állítsa be a telepítő segítségével. Ha már van git, akkor csak megmutatja, hogy a git melyik verzióját telepítette.

Ha Linuxot (deb) futtat , írja be a következőket a terminálba:

$ sudo apt install git-all

Ha Windows operációs rendszert használ :

$ get a mac

Csak vicceltem ... Pihenj ... Azok száma, akiket kiváltottam ... Phew ...

Ehhez a linkhez vagy ehhez a linkhez további információt talál a megszerzéséről.

2. lépés: Mondd meg Gitnek, hogy ki vagy.

Mutatkozz be. Csúsztasson be. Komolyan, említse meg Git felhasználónevét és e-mail címét, mivel minden Git elkötelezettség felhasználja ezeket az információkat, hogy azonosítsa Önt szerzőként.

$ git config --global user.name "YOUR_USERNAME" 
$ git config --global user.email "[email protected]"
$ git config --global --list # To check the info you just provided

3. lépés: Generálja / ellenőrizze, hogy a gépen vannak-e meglévő SSH kulcsok. (Választható)

Miért kérdezed? Az SSH protokollt , akkor csatlakozni, és hitelesíteni r emote szerverek és szolgáltatások . Az SSH-kulcsok segítségével csatlakozhat a GitHub-hoz anélkül, hogy minden látogatáskor megadná felhasználónevét vagy jelszavát.

Kövesse ezt a linket , ha többet szeretne megtudni az SSH-ról.

Menj idehogy ellenőrizze, hogy van-e meglévő SSH-kulcsa.

Lépjen ide SSH-kulcs előállításához.

Menj idehogy hozzáadja az SSH kulcsot a GitHub-fiókjához.

És végül menjen ide, hogy tesztelje a kapcsolatát.

Ha beállította az SSH-t, minden git parancsot, amelynek linkje van, lecseréli:

Instead of : //github.com/username/reponame
You use : [email protected]/username/reponame.git
 Note : You can use both ways alternatively

SSH protokollt fogok használni ebben az oktatóanyagban.

4. lépés: Nézzük Git

Hozzon létre egy új adattárat a GitHubon. Kövesse ezt a linket.

Most keresse meg azt a mappát, amelyet a terminál git alá kíván helyezni.

$ cd Desktop/MuskCult

Git inicializálása:

És hogy git alá helyezze, írja be:

$ touch README.md # To create a README file for the repository$ git init # Initiates an empty git repository

Most szerkessze a README.md fájlt, hogy információkat nyújtson a tárról.

Fájlok hozzáadása az átmeneti területhez a kötelezettségvállaláshoz:

Most, hogy hozzáadja a fájlokat a git adattárához a végrehajtáshoz:

$ git add . # Adds all the files in the local repository and stages them for commit
OR if you want to add a specific file
$ git add README.md # To add a specific file

Mielőtt elköteleznénk magunkat, nézzük meg, milyen fájlokat rendeznek:

$ git status # Lists all new or modified files to be committed

Végezze el a Git Repo-n végrehajtott változtatásokat:

Most a git repo-hoz hozzáadott fájlok végrehajtásához:

$ git commit -m "First commit"# The message in the " " is given so that the other users can read the message and see what changes you made

A Git Repo most végrehajtott változtatásainak visszavonása:

Tegyük fel, hogy most hibát követett el a kódban, vagy egy nem kívánt fájlt helyezett el az adattárban, az imént hozzáadott fájlokat az alábbi lépésekkel törölheti

$ git reset HEAD~1# Remove the most recent commit# Commit again!

Adjon hozzá egy távoli eredetet és nyomja meg:

Minden alkalommal, amikor módosításokat hajt végre a fájljaiban és elmenti, a program nem frissül automatikusan a GitHubon. A fájlban végrehajtott összes változás frissül a helyi adattárban. Most a master módosításainak frissítéséhez:

$ git remote add origin remote_repository_URL# sets the new remote

A git távoli parancs lehetővé teszi más tárakhoz való kapcsolatok létrehozását, megtekintését és törlését.

$ git remote -v# List the remote connections you have to other repositories.

A git remote -v parancs felsorolja azoknak a távoli kapcsolatoknak az URL-jeit, amelyek más tárhelyekhez szükségesek.

$ git push -u origin master # pushes changes to origin

Most a git push parancs a helyi adattárban végrehajtott változásokat az eredetként megadott távoli adattárig tolja .

És most, ha megnézzük a tárház oldalunkat a GitHubon, valami ilyennek kell kinéznie:

És ez az. Most adta hozzá a fájlokat az imént a GitHubon létrehozott lerakathoz.

Tekintse meg a fájlban végrehajtott módosításokat:

Amint elkezdi módosítani a fájljait, és elmenti őket, a fájl nem egyezik meg a legutóbbi, gitre elkötelezett verzióval. Az imént végrehajtott változtatások megtekintéséhez:

$ git diff # To show the files changes not yet staged

Visszatérés a Git Repo legutóbbi elfogadott verziójához:

Most kiválaszthatja, hogy visszatér-e a legutóbbi verzióra a következő beírásával:

$ git checkout .
OR for a specific file
$ git checkout -- 

Vállalási előzmények megtekintése:

A git log paranccsal megtekintheti a fájljaival kapcsolatos elkötelezettség előzményeit:

$ git log

Minden alkalommal, amikor olyan módosításokat hajt végre, amelyeket tükrözni szeretne a GitHubon, a következők a parancsok leggyakoribb folyamata:

$ git add .$ git status # Lists all new or modified files to be committed$ git commit -m "Second commit"$ git push -u origin master

Most, ha megnézzük a repót, az egyes fájlok kötelezettségvállalási üzenetét megnézve azonosíthatjuk, hogy az elkötelezettség sikeres volt-e.

5. lépés: Ez minden jó és jó ... De hogyan tölthetek le és dolgozhatok a GitHub más adattárain?

Git Repo klónozása:

Keresse meg azt a könyvtárat, amelybe klónozni kívánja a repót. Másolja a kívánt lerakat linkjét, és írja be a következőt:

$ git clone remote_repository_URL

Nyugodtan folytathatja és klónozhatja a fent létrehozott repót: //github.com/Gothamv/MuskCult

A Git Repo változásainak kitolása:

Most dolgozhat a kívánt fájlokon, és helyi szinten elkötelezheti magát a változtatások mellett. Ha változtatásokat szeretne végrehajtani az adott adattárban, akkor vagy hozzá kell adnia a tárház munkatársaként, vagy létrehozott valami úgynevezett húzási kérelmet. Menjen és nézze meg, hogyan kell itt csinálni, és adjon egy lekérési kérelmet a kódfájljával.

Együttműködés:

Tehát képzelje el, hogy Ön és barátja együttműködik egy projektben. Mindketten ugyanazokon a projektfájlokon dolgoznak. Minden alkalommal, amikor néhány változtatást végrehajtasz, és a master repo-ba tolod, a barátodnak be kell húznia a változtatásokat, amelyeket belöktél a git repóba. Annak biztosítása, hogy minden alkalommal, amikor elkezd dolgozni, a git repo legújabb verzióján dolgozik, a git pull parancs a helyes út.

Az alábbiakban bemutatunk egy példát egy projektre, amellyel barátommal és én együttműködünk:

Tehát annak biztosítása érdekében, hogy ezek a változások tükröződjenek a repó helyi példányán:

$ git pull origin master

Itt van még két hasznos git parancs:

$ git fetch AND$ git merge

A legegyszerűbben kifejezve, git fetchamelyet egy git merge egyenlő követ a git pull. De akkor miért léteznek ezek?

Amikor használja git pull, a Git megpróbálja automatikusan elvégezni a munkáját helyetted. Környezetérzékeny , ezért a Git beolvasztja az összes húzott elkötelezettséget abba az ágba, amelyben éppen dolgozik. A műveleteket git pullautomatikusan egyesíti anélkül, hogy először átnézné őket .

Amikor Ön git fetch, a Git összegyűjt minden olyan vállalást a célágból, amely nem létezik az Ön jelenlegi fiókjában, és tárolja azokat a helyi adattárban . Ez azonban nem egyesíti őket a jelenlegi fiókkal . Ez különösen akkor hasznos, ha naprakészen kell tárolnia az adattárat, de azon dolgozunk, amelyik meghibásodhat, ha frissíti a fájlokat. Az elkötelezettségek integrálásához a fő ághoz használd git merge.

Még egy dolog:

.gitignore

Szóval mi ez?

.gitignoremegmondja a gitnek, mely fájlokat (vagy mintákat) kell figyelmen kívül hagynia. Általában annak elkerülésére használják, hogy átmeneti fájlokat kövessenek el a munkakönyvtárból, amelyek nem hasznosak más együttműködők számára, például fordítási termékek, ideiglenes fájlok, amelyeket az IDE-k hoznak létre stb.

Tehát a fenti példában a __pycache__, .DS_Store fájlokat használja a rendszer az információk tárolására a gyorsabb hozzáférés érdekében. Ez más munkatársak számára nem hasznos. Tehát egy .gitignorefájl hozzáadásával elmondhatjuk a gitnek, hogy figyelmen kívül hagyja őket .

A touch parancs segítségével hozza létre a .gitignorefájlt:

$ touch .gitignore

És hozzáadhatja a következő mintákat, hogy a git figyelmen kívül hagyja az ilyen fájlokat.

/*.cmake/*.DS_Store/.user/buildetc. depending upon the files you want git to untrack

És ez nagyjából az alapoknál jár. Maradjon velünk a 2. részben, amely a Branch, Merge, Stash, Rebase stb.

Ha tetszett a cikk, ne felejtsd el összetörni azt a Taps gombot, és mindenképpen kövess engem a 2. részért.

Peace Out ✌️

Referenciák:

Meglévő projekt hozzáadása a GitHub-hoz a parancssor használatával - Felhasználói dokumentáció

Ha meglévő munkáját a GitHubra helyezi, akkor sokféle módon megoszthatja és együttműködhet. Ha áttelepíti a… help.github.com webhelyet, hogyan lehet visszavonni (szinte) bármit a Git alkalmazással

A verziókezelő rendszerek egyik leghasznosabb tulajdonsága a hibák "visszavonásának" képessége. A Gitben "visszavonás" ... blog.github.com Git a parancssoron - Ne féljen elköveni 0,3 dokumentációt

A Git telepítésének más módjai is vannak; akár egy grafikus Git alkalmazást is beszerezhet, amely tartalmazza a parancssort ... dont-be-afraid-to-commit.readthedocs.io Kezdje el használni a Git parancssort | GitLab

A GitLab Community Edition, a GitLab Enterprise Edition, az Omnibus GitLab és a GitLab Runner dokumentációja. docs.gitlab.com Mi a különbség a „git pull” és a „git fetch” között?

Moderátor megjegyzés: Tekintettel arra, hogy erre a kérdésre már hatvanhét választ küldtek (néhányat töröltek) ... stackoverflow.com