Git

Git bemutató kezdőknek

Git bemutató kezdőknek

A szoftverfejlesztés együttműködésen alapuló munka. Szoftvermérnökként meg kell osztania munkáját másokkal. De a kód megosztása és az együttműködés bonyolulttá válhat. Nehéz nyomon követni a szoftver életciklusa során bekövetkező különféle változásokat. Tehát a fejlesztői csapatok a verziókezelő eszközökre támaszkodnak a szoftver együttműködési folyamat elősegítésében. A Git a szoftveripar egyik legkiemelkedőbb verziókezelő eszköze.

Tipp: Ebben az oktatóanyagban megtudhatja, hogyan kell használni a Git alapjait. Minden szakasz néhány kérdéssel zárul. A szakasz elolvasása előtt olvassa el a kérdéseket. Ez segít megérteni és figyelni a fontos pontokra.

Jó szórakozást tanulni Git!

Git: Rövid áttekintés

A Git egy elosztott verzióvezérlő rendszer. Nyomon követi a fájlokban és mappákban végrehajtott változtatásokat. Ez megkönnyíti a befejezetlen munka mentését. Ha probléma merül fel, könnyedén ellenőrizheti a fájl vagy mappa korábbi verzióját. Szükség esetén akár az egész kódbázist visszaállíthatja egy régebbi verzióra.

A Git fejlesztése 2005-ben kezdődött. A Linux kernel csoport a kódjuk karbantartására a BitKeeperben, egy saját elosztott verzióvezérlő rendszerben szolgált. A BitKeeper azonban visszavonta a termék ingyenes használatát. Tehát Linus Torvalds, a Linux létrehozója és fő fejlesztője egy új nyílt forráskódú elosztott verzióvezérlő rendszert tervezett, amely megfelel a Linux fejlesztői közösség követelményeinek. És Git megszületett.

Elosztott verzióvezérlő rendszerként a Git nem igényel központi jogosultságot a kód nyomon követéséhez. Az olyan régebbi központosított verzióvezérlők, mint a CVS, az SVN vagy a Perforce, központi kiszolgálókat igényelnek a változások előzményeinek fenntartásához. A Git képes lokálisan nyomon követni az összes változást és egyenrangúan dolgozni. Tehát sokoldalúbb, mint a centralizált rendszerek.

Kérdések:

A Git telepítése

Linux rendszerek számára a Git telepítése egyszerű. Ha olyan Debian-alapú terjesztést használ, mint az Ubuntu, használhatja az apt install alkalmazást:

$ sudo apt install git-all

A Fedora, az RHEL vagy a CentOS esetében a következőket használhatja:

$ sudo dnf install git-all

A következő paranccsal ellenőrizheti, hogy a Git telepítve van-e:

$ git --verzió

Meg kell mutatnia a telepített Git verzióját, például:

git 2. verzió.17.0

A Git telepítése után itt az ideje beállítani felhasználónevét és e-mail címét:

$ git config - globális felhasználó.név "felhasználóneved"
$ git config - globális felhasználó.e-mail "[email protected]"

A következő paranccsal ellenőrizheti, hogy a konfigurációk megfelelően lettek-e beállítva:

$ git config --list
felhasználó.név = felhasználóneved
felhasználó.email = felhasználónév @ példa.com

Tipp: Fontos beállítani a felhasználót.név és felhasználó.e-mailt, mert ezeket a konfigurációkat a változások nyomon követésére használják.

Kérdések

Git fogalmilag megértése

A Git használatához először meg kell értenie ezt a négy fogalmat:

A munkakönyvtár, az átmeneti terület és az adattár lokális a gépén. A távoli adattár bármely más számítógép vagy szerver lehet. Gondoljunk ezekre a fogalmakra négy dobozként, amelyekben elférnek a szabványos A1 papírok.

Tegyük fel, hogy egy dokumentumot kézzel ír egy A1-es papírra az íróasztalánál. Ezt a dokumentumot a dolgozó könyvtár mezőben tárolja. Munkájának egy bizonyos szakaszában úgy dönt, hogy készen áll a már elvégzett munka másolatának megőrzésére. Tehát fénymásolatot készít a jelenlegi papírjáról, és beteszi az átmenő dobozba.

A rendező doboz ideiglenes terület. Ha úgy dönt, hogy eldobja a fénymásolatot az átmeneti dobozban, és frissíti a munkakönyv-dokumentum új példányával, akkor az adott szakaszos dokumentumról nem lesz állandó nyilvántartás.

Tegyük fel, hogy egészen biztos abban, hogy meg akarja őrizni az átmeneti dobozban lévő dokumentum állandó nyilvántartását. Ezután fénymásolatot készít az átmeneti dobozról és áthelyezi a tároló dobozába.

Amikor áthelyezi az adattár mezőbe, két dolog történik:

  1. A dokumentum pillanatfelvétele véglegesen mentésre kerül.
  2. Naplófájl bejegyzés készül a pillanatképhez.

A naplóbejegyzés segít megtalálni a dokumentum adott pillanatképét, ha a későbbiekben szüksége van rá.

Most a helyi adattár mezőben van egy pillanatkép a munkáról és egy naplóbejegyzés. De csak Ön számára elérhető. Tehát másolatot készít a helyi adattár dokumentumból a naplófájllal együtt, és egy dobozba teszi a vállalati ellátási helyiségben. Most bárki a cégében eljöhet, elkészítheti a dokumentum másolatát, és elviheti az íróasztalához. Az ellátó helyiségben lévő doboz a távoli adattár lenne.

A távoli adattár olyan, mint a dokumentum megosztása a Google Dokumentumok vagy a Dropbox használatával.

Kérdések:

Az első Git-tár

Miután telepítette a Git-et, elkezdheti saját Git-tárházainak létrehozását. Ebben a szakaszban inicializálni fogja a Git adattárat.

Tegyük fel, hogy webfejlesztési projekten dolgozik. Hozzunk létre egy project_helloworld nevű mappát, és váltsunk át a könyvtárba:

$ mkdir project_helloworld
$ cd project_helloworld

A következő paranccsal elmondhatja a Gitnek, hogy figyelje ezt a könyvtárat:

$ git init

Ilyen kimenetet kell látnia:

Inicializálta az üres Git adattárat a / Users / zakh / _work / LearnGIT / git_tutorial / könyvtárban
project_helloworld /.git

Most a project_helloworld fájljait és mappáit Git fogja követni.

Kérdések:

Alapvető Git parancsok: állapot, napló, hozzáadás és elköteleződés

Az állapot parancs megmutatja a munkakönyvtár aktuális állapotát, a napló parancs pedig az előzményeket. Próbáljuk meg a status parancsot:

$ git állapot
Fiókmesteren
Kezdeti elkötelezettség
semmi nem kötelező (fájlok létrehozása / másolása és a "git add" használata a nyomon követéshez)

A git status parancs kimenete azt mondja, hogy a master ágon vagy. Ez az alapértelmezett ág, amelyet a Git inicializál. (Saját fiókokat hozhat létre. További információ a fióktelepekről később). A kimenet azt is mondja, hogy nincs mit elkövetni.

Próbáljuk ki a log parancsot:

$ git napló
végzetes: a jelenlegi fiók "master" még nem végzett változtatást

Tehát itt az ideje egy kis kódot létrehozni. Hozzunk létre egy index nevű fájlt.html:


Saját weboldal


Helló Világ

A fájl létrehozásához használhatja a szövegszerkesztőt. Miután elmentette a fájlt, ellenőrizze újra az állapotot:

$ git állapot
Fiókmesteren
Kezdeti elkötelezettség
Nem követett fájlok:
(használja a "git add … ", Hogy belefoglalják az elkötelezettségbe)
index.html
semmi nem lett hozzáadva az elköteleződéshez, de nem nyomon követett fájlok vannak jelen (a "git add" használatával nyomon követhető)

Git azt mondja neked, hogy van egy index nevű fájlod.html a munkakönyvtárban, amelyet nem követünk.

Ellenőrizzük az indexet.html nyomon követése. Használnia kell az add parancsot:

$ git index hozzáadása.html

Alternatív megoldásként használhatja a.”Lehetőség mindent hozzáadni a könyvtárhoz:

$ git add .

Most ellenőrizzük újra az állapotot:

$ git állapot
Fiókmesteren
Kezdeti elkötelezettség
Végrehajtandó változtatások:
(használja a "git rm --cache … "Színpadig)
új fájl: index.html

A zöld azt jelzi, hogy az index.A html fájlt a Git követi.

Tipp: Amint azt a fenti utasításokban említettük, ha a parancsot használja:

$ git rm - gyorsítótárazott index.html

Az indexed.A html vissza fog térni követetlen állapotba. Újra hozzá kell adnia, hogy visszatérjen a színpadra.]

Ellenőrizzük újra a naplót:

$ git napló
végzetes: a jelenlegi fiók "master" még nem végzett változtatást

Tehát annak ellenére, hogy Git indexet követ.html, a Git adattárban még nincs semmi a fájlról. Végezzük el változásainkat:

$ git kötelezettség -m "Elkötelező index.html "
A kimenetnek így kell kinéznie:
[master (root-comm) f136d22] Index végrehajtása.html
1 fájl megváltozott, 6 beszúrás (+)
létrehozási mód 100644 index.html

Az idézőjelek között az „-m” után található szöveg egy megjegyzés, amely a naplófájlba kerül. Használhatod a git-bejegyzést „-m” nélkül is, de ekkor a Git megnyit egy szövegszerkesztőt, amely felkéri, hogy írd meg a megjegyzéseket. Könnyebb egyszerűen megjegyzéseket közvetlenül a parancssorba tenni.

Most ellenőrizzük a naplófájlunkat:

$ git napló
elkövetni f136d22040ba81686c9522f4ff94961a68751af7
Szerző: Zak H
Dátum: június 4. hétfő, 16:53:42, 2018 -0700
Index végrehajtása.html

Láthatja, hogy elkötelezettséget mutat. Sikeresen elvégezte a módosításokat a helyi adattárban. Ha ugyanazt a naplót tömören szeretné megtekinteni, használhatja a következő parancsot:

$ git log - online
f136d22 Index végrehajtása.html

Továbblépve a log parancsnak ezt a formáját fogjuk használni, mert ez megkönnyíti a folyamat megértését.

Kezdjük el szerkeszteni az indexet.html. Nyissa meg az indexet.html fájlt egy szerkesztőben, és változtassa meg a „Hello world” sort a „Hello world! Én vagyok!”És mentse el. Ha újra ellenőrzi az állapotot, látni fogja, hogy Git észrevette, hogy a fájlt szerkeszti:

$ git állapot
Fiókmesteren
Az elkövetéshez nem rendezett változások:
(használja a "git add … "A kötelezettségvállalások frissítéséhez)
(használja a "git checkout -- … "A munkakönyvtár változásainak elvetéséhez)
módosítva: index.html
Nincs változás hozzáadva az elköteleződéshez (használja a "git add" és / vagy a "git kötelezettség -a" -t)

A változás még mindig a munkakönyvtárban van. A stádium területére kell tolnia. Használja a korábban használt add parancsot:

$ git add .

Ellenőrizze újra az állapotot:

$ git állapot
Fiókmesteren
Végrehajtandó változtatások:
(használja a "git reset HEAD … "Színpadig)
módosítva: index.html

Most a változtatások az átmeneti területen vannak. Kötelezheti a tárolóhoz tartós megőrzés céljából:

$ git kötelezettség -m "Módosított index.HTML egy boldogabb üzenetre "
[master 0586662] Módosított index.HTML egy boldogabb üzenetre
1 fájl megváltozott, 1 beszúrás (+), 1 törlés (-)

Ellenőrizheti a naplóban az állandó változásokat:

$ git log - online
0586662 Módosított index.HTML egy boldogabb üzenetre
f136d22 Index végrehajtása.html

Ebben a szakaszban megtanulta használni az állapotot, naplózni, hozzáadni és végrehajtani a parancsokat a dokumentumok nyomon követéséhez a Git-ben.

Kérdések:

  • Mit csinál a git státusz?
  • Mit csinál a git log?
  • Mit tesz a git add?
  • Mit csinál a git elkövetése?

Visszatérés a régebbi fájlokhoz a Checkout használatával

Amikor egy fájlt a Git programban köt le, az minden egyes kötelezettségvállaláshoz egyedi kivonatot hoz létre. Ezeket azonosítóként használhatja a régebbi verzióhoz való visszatéréshez.

Tegyük fel, hogy vissza akar térni az index korábbi verziójához.html. Először nézzük meg az indexet.html a jelenlegi állapotban:

$ macskaindex.html

Saját weboldal


Helló Világ! Én vagyok!

Láthatja, hogy van egy újabb verziója („Hello világ! Én vagyok!”). Ellenőrizzük a naplót:

$ git log - online
0586662 Módosított index.HTML egy boldogabb üzenetre
f136d22 Index végrehajtása.html

Az előző verzió kivonata f136d22 volt (“Hello world”).  Használhatja a checkout parancsot az adott verzió eléréséhez:

$ git pénztár f136d22
Megjegyzés: az „f136d22” megtekintése.
Ön „leválasztott FEJ” állapotban van. Körülnézhet, kísérleti változtatásokat végezhet
és hajtsa végre őket, és elvetheti az ebben az állapotban elkövetett minden elkövetését
anélkül, hogy bármilyen fiókot érintenének egy másik fizetéssel.
Ha új fiókot szeretne létrehozni a létrehozott elkötelezettségek megtartása érdekében, akkor megteheti
ezt tegye meg (most vagy később) a -b használatával a checkout paranccsal. Példa:
git pénztár -b
A HEAD most az f136d22 helyen áll ... Index készítése.html

Ha megnézi az index tartalmát.html, látni fogja:

$ macskaindex.html

Saját weboldal


Helló Világ

Csak „Hello world” van benne. Tehát az indexed.A html a régebbi verzióra változott. Ha ellenőrzi az állapotot:

$ git állapot
FEJ levált az f136d22-nél
nincs mit elkötelezni, tiszta a könyvtár

Git alapvetően azt mondja neked, hogy a HEAD nem a legfrissebb elkötelezettség. Visszaléphet a legfrissebb elkötelezettséghez, ha megnézi a főágat a következő paranccsal:

$ git checkout master
Az előző HEAD pozíció f136d22 volt ... Index készítése.html
Átállt a "master" fiókra

Most, ha ellenőrzi az állapotot:

$ git állapot
Fiókmesteren
nincs mit elkötelezni, tiszta a könyvtár

A piros figyelmeztetés eltűnt. Továbbá, ha megnézi az indexét.html, vissza kell térnie a legújabb verzióra:

$ macskaindex.html

Saját weboldal

Helló Világ! Én vagyok!

A checkout paranccsal különböző állapotokba juthat. A fizetésről a következő szakaszban tudhat meg többet.

Kérdések:

  • Hogyan használhatja a git checkout parancsot egy fájl régebbi verziójához való ugráshoz?
  • Hogyan használhatja a git checkout-t, hogy visszatérjen a fájl legújabb verziójához?

Pénztár, elágazás és egyesítés

Az elágazás a Git egyik legjobb tulajdonsága. Segít elkülöníteni a munkáját és többet kísérletezni. Más verzióvezérlő rendszerekben az elágazás időigényes és nehéz volt. A Git megkönnyítette az elágazásokat és az egyesítéseket.

Amint az állapotparancsban észrevette, amikor új Git-tárat hoz létre, a főágban tartózkodik.

$ git állapot
Fiókmesteren
nincs mit elkötelezni, tiszta a könyvtár

Tegyük fel, hogy David barátjának készít weboldalt. Újra szeretné használni saját webhelyének kódját. Az elágazás nagyszerű megoldás. Hívjuk a fiókot david_website.

A következő parancsot adhatja ki:

$ git ág david_website

A következő paranccsal megtekintheti az összes ágat:

$ git branch --list
david_website
* mester

A csillag (*) a master mellett azt jelenti, hogy még mindig a master ágban vagy. A david_website ágat a következő paranccsal ellenőrizheti:

$ git checkout david_website
Átállt a „david_website” fiókra

Most, ha újra ellenőrzi az áglistát, a következőket látja:

$ git branch --list
* david_website
fő-

Tehát a david_website ágon vagy.

Változtassuk meg az indexet.html a “Hello world! Én vagyok!”A„ Hello világ! David vagyok!”, Majd állítsa színre és kövesse el:

$ git add .
$ git sitout -m "Dávid megváltozott weboldala"

Ha ellenőrzi a naplókat, látnia kell:

$ git log - online
345c0f4 Megváltoztatta David webhelyét
0586662 Módosított index.HTML egy boldogabb üzenetre
f136d22 Index végrehajtása.html

Az indexfájljának így kell kinéznie:

$ macskaindex.html

Saját weboldal


Helló Világ! David vagyok!

Most nézzük meg újra a fő ágat:

$ git checkout master
Átállt a "master" fiókra

Ha ellenőrzi az állapotot és a naplót:

$ git állapot
Fiókmesteren
nincs mit elkötelezni, tiszta a könyvtár
$ git log - online
0586662 Módosított index.HTML egy boldogabb üzenetre
f136d22 Index végrehajtása.html

Figyelje meg, hogy nincs harmadik elkötelezettsége a mesterben. Mivel ezt az elkötelezettséget csak a david_website ág tartja fenn.

Ez történt

Tegyük fel, hogy ebben a szakaszban úgy dönt, hogy nem akarja folytatni a webhelyét. Csak David fejlesztője leszel. Tehát be akarja egyesíteni a david_website ág változásait a masterbe. A fő ágból csak a következő parancsokat kell kiadnia (az állapot paranccsal ellenőrizhető, hogy jó helyen jár-e):

$ git állapot
Fiókmesteren
nincs mit elkötelezni, tiszta a könyvtár
 
$ git merge david_website
A 0586662… 345c0f4 frissítése
Előrepörgetés
index.html | 2 +-
1 fájl megváltozott, 1 beszúrás (+), 1 törlés (-)

Tipp: A david_website-ről változtatásokat hajt végre. Ennek eléréséhez a mesteren kell lennie.

Most, ha ellenőrzi a mester naplóját, látja, hogy a harmadik elkötelezettség ott van:

$ git log - online
345c0f4 Megváltoztatta David webhelyét
0586662 Módosított index.HTML egy boldogabb üzenetre
f136d22 Index végrehajtása.html

Sikeresen beolvasztotta a david_website ágat a masterbe. És az indexed.A html for master branch azonos a david_website ággal:

$ macskaindex.html

Saját weboldal


Helló Világ! David vagyok!

Megtarthatja a david_website ágat:

$ git branch --list
david_website
* mester

Vagy törölheti:

$ git branch -d david_website
Törölt ág david_website (volt 345c0f4).

Törlés után már nem szabad látnia a david_website ágat:

$ git branch --list
* mester

Tipp: Az egyesítés során, ha a Git nem tudja automatikusan egyesíteni, akkor egyesítési konfliktushibákat okoz. Ebben az esetben manuálisan kell megoldania az egyesítési problémákat.

Kérdések:

  • Miért van szükség elágazásra?
  • Hogyan lehet elágazni és egyesíteni a fájlokat és mappákat?

Távoli adattár

Eddig minden munkája helyi volt. A változtatásokat egy helyi adattárban hajtotta végre. De itt az ideje, hogy megossza munkáját a világgal.

A Git távoli adattár alapvetően a helyi adattár egy másik példánya, amelyhez mások is hozzáférhetnek. Beállíthat egy kiszolgálót, és távoli adattárrá alakíthatja. De a legtöbb ember a GitHub-ot vagy a Bitbucketet használja erre a célra. Ingyenes nyilvános tárakat hozhat létre ott, amelyekhez bárki hozzáférhet.

Hozzunk létre egy távoli adattárat a GitHubon.

Először létre kell hoznia egy GitHub-fiókot []. Miután elkészült a fiók, hozzon létre egy új tárhelyet az „Új tároló” gombbal. Használja a „project_website” adattár nevét (választhat mást is, ha akarja).

Látnia kell egy Kód lapot, amely az alábbi utasításokat tartalmazza:

… Vagy hozzon létre egy új adattárat a parancssorban

echo "# project_website" >> OLVASSA el.md
git init
git add README.md
git elkötelezettség -m "első elkötelezettség"
git remote add origin git @ github.com: felhasználóneved / projekt_webhely.git
git push -u eredetű mester

Másolja a következő „git remote add origin” parancsot, és futtassa a munkakönyvtárban:

$ git remote add origin git @ github.com: felhasználóneved / projekt_webhely.git

Megjegyzés: Az Ön esetében a felhasználónevének meg kell felelnie a GitHub-fiók létrehozásához.

A fenti parancsban utasította Git a távoli adattár helyére. A parancs azt mondja a Gitnek, hogy a project_helloworld munkakönyvtárának „origója” a következő lesz: [email protected]: felhasználóneved / project_website.git ”.

Most tolja a kódot a fő ágról az eredetre (távoli adattár):

$ git push origó mester
Tárgyak számlálása: 9, kész.
Delta tömörítés akár 4 szál használatával.
Objektumok tömörítése: 100% (6/6), kész.
Objektumok írása: 100% (9/9), 803 bájt | 0 bájt / s, kész.
Összesen 9 (delta 2), újrafelhasználva 0 (delta 0)
távirányító: Delták megoldása: 100% (2/2), kész.
Git @ github.com: felhasználóneved / projekt_webhely.git
* [új fiók] mester -> mester

Ha frissíti böngészőjét a GitHub-ban, látnia kell, hogy az index.html fájl fent van. Tehát a kódod nyilvános, és más fejlesztők megnézhetik és módosíthatják a kódot a távoli adattáron.

Fejlesztőként mások kódjaival fog dolgozni. Érdemes tehát megpróbálni a GitHub kódját fizetni.

Menjünk egy új könyvtárba, ahol nincs semmi. A GitHub-tár jobb oldalán észreveszi a „Klónozás vagy letöltés” ​​gombot. Ha rákattint, akkor meg kell adnia egy SSH címet. Futtassa a következő parancsot az SSH-címmel:

$ git klón git @ github.com: felhasználóneved / projekt_webhely.git

A kimenetnek így kell kinéznie:

$ git klón git @ github.com: felhasználóneved / projekt_webhely.git
A "project_website" klónozása ..
távirányító: Objektumok számlálása: 9, kész.
távirányító: Objektumok tömörítése: 100% (4/4), kész.
távoli: Összesen 9 (delta 2), újrafelhasználva 9 (delta 2), pack-reused 0
Objektumok fogadása: 100% (9/9), kész.
Delták feloldása: 100% (2/2), kész.
A kapcsolat ellenőrzése ... kész.

Létrehoz egy project_website-t a tiszta mappában. Ha bemegy, be kell látnia az indexet.html a project_helloworld-ből.

Tehát elérted a következőket:

  • Létrehozta és módosította a project_helloworld fájlt
  • A kódot feltöltötte a GitHub webhelyre a project_website webhelyen
  • Letöltötték a kódot a GitHub-ból

Vegyünk egy másik fájlt az új munkakönyvtárból: project_website:

$ érintse meg a ReadMe gombot.md
$ git add .
$ git sitout -m "Hozzáadott ReadMe.md "
$ git push origó mester

Ha frissíti a GitHub project_website oldalt, látnia kell a ReadMe-t.md fájl ott.

Megjegyzés: Ha kódot tölt le a GitHubról, a munkakönyvtár automatikusan ismeri az eredetet. Nem kell meghatároznia a „git remote add origin” paranccsal.

Kérdések:

  • Miért kell távoli adattárakat használni??
  • Hogyan állíthatja be a jelenlegi helyi adattárat, hogy csatlakozzon a távoli adattárhoz?
  • Hogyan klónozhatja a távoli adattárakat a helyi számítógépére?

Következtetés

Az összes parancsról további információt talál a Git docs-ban []. Annak ellenére, hogy vannak elérhető Git felhasználói felület eszközök, a parancssori a legjobb módszer a Git elsajátítására. Erősebb alapot ad fejlesztői munkájához.

A további vizsgálat:
  • https: // git-scm.com / docs
  • https: // git-scm.com / book / en / v2
  • https: // git-scm.com / videók
Az X-Mouse Button Control segítségével az egér gombjait másképp alakíthatja át a különböző szoftvereknél
Lehet, hogy szüksége van egy eszközre, amely megváltoztathatja az egér vezérlését minden használt alkalmazással. Ebben az esetben kipróbálhatja az úgy...
Microsoft Sculpt Touch vezeték nélküli egér áttekintés
Nemrég olvastam a Microsoft Sculpt Touch vezeték nélküli egér és úgy döntött, hogy megveszi. Egy ideig használat után úgy döntöttem, hogy megosztom ve...
AppyMouse képernyős Trackpad és egérmutató a Windows táblagépekhez
A táblagép-felhasználók gyakran hiányolják az egérmutatót, különösen akkor, ha szokták használni a laptopokat. Az érintőképernyős okostelefonok és táb...