git fetch (Magyar)

git fetch (Magyar)

The git fetch command downloads committs, files, and refs from a remote repository into your local repo. Az, amit csinálsz, amikor látni akarod, hogy mindenki más dolgozik. Hasonló a svn update – hoz, mivel lehetővé teszi, hogy megnézze, hogyan fejlődött a központi történelem, de nem kényszeríti arra, hogy ténylegesen egyesítse a változásokat a tárolóba. A Git leválasztja a meglévő helyi tartalomból származó tartalmat; ez egyáltalán nem befolyásolja a helyi fejlesztési munkát., A beolvasott tartalmat a git checkout paranccsal kell kifejezetten ellenőrizni. Ez teszi lekérése biztonságos módja annak, hogy vizsgálja felül elkötelezi magát, mielőtt integrálja őket a helyi adattár.

tartalom távoli repo-ról történő letöltésekor a git pull és git fetch parancsok állnak rendelkezésre a feladat végrehajtásához. A git fetch a két parancs “biztonságos” verzióját tekintheti meg. Letölti a távoli tartalmat, de nem frissíti a helyi repo működési állapotát, így az aktuális munkája érintetlen marad., git pullaz agresszívabb alternatíva; letölti az aktív helyi fióktelep távoli tartalmát, és azonnal végrehajtja a – ot, hogy létrehozzon egy merge commit-et az új távoli tartalomhoz. Ha folyamatban lévő változások vannak, ez konfliktusokat és az egyesítési konfliktusmegoldási folyamat elindítását fogja eredményezni.

hogyan működik a git fetch távoli ágakkal

hogy jobban megértsük, hogyan működik a git fetch a művek megvitatják, hogyan szervezi a Git és tárolja a kötelezettségvállalásokat., A színfalak mögött, az adattár ./.git/objects könyvtárában a Git tárolja az összes kötelezettséget, helyi és távoli. A Git távol tartja magát, a helyi fióktelep pedig elkülönül a fióktelepek használatával. A helyi fióktelepek refs-jét a ./.git/refs/heads/tárolja. A git branch parancs végrehajtása kiírja a helyi fióktelep refs listáját. A következő példa agit branch kimenetre néhány demo ágnévvel.,

git branch
master
feature1
debug2

a /.git/refs/heads/ könyvtár tartalmának vizsgálata hasonló kimenetet tárna fel.

ls ./.git/refs/heads/
master
feature1
debug2

a távoli ágak olyanok, mint a helyi ágak, kivéve, ha valaki más tárolójából követ el. A távoli ágakat a távirányító előtagja jelöli, amelyhez tartoznak, hogy ne keverje össze őket a helyi ágakkal. A helyi fióktelepekhez hasonlóan a Git rendelkezik a távoli ágak refs-jével is. A Remote branch refs a ./.git/refs/remotes/ könyvtárban él., A következő példakód-kódrészlet a távoli repo kényelmes elnevezése után látható ágakat mutatja:

git branch -r
# origin/master
# origin/feature1
# origin/debug2
# remote-repo/master
# remote-repo/other-feature

Ez a kimenet megjeleníti a korábban megvizsgált helyi ágakat, de most a origin/előtaggal jeleníti meg őket. Ezenkívül most láthatjuk a remote-repoelőtaggal ellátott távoli ágakat. Akkor nézd meg a távoli ág, mint egy helyi, de ez hozza meg a családi HEAD állapot (csakúgy, mint megnézni egy régi elkövetni). Úgy gondolhatsz rájuk, mint csak olvasható ágakra., A távoli ágak megtekintéséhez egyszerűen adja át a -r zászlót a git branch parancsra.

a távoli ágakat a szokásosgit checkout ésgit log parancsokkal ellenőrizheti. Ha jóváhagyja azokat a módosításokat, amelyeket egy távoli ág tartalmaz, egyesítheti azt egy helyi ágba egy normál git mergeértékkel. Tehát, ellentétben az SVN-vel, a helyi tároló szinkronizálása egy távoli tárolóval valójában kétlépcsős folyamat: Lekérés, majd egyesítés. Agit pull parancs kényelmes parancsikon ehhez a folyamathoz.,

Git fetch parancsok és opciók

git fetch <remote>

az összes ág lekérése az adattárból. Ez is letölti az összes szükséges kötelezettséget, fájlokat a másik adattár.

git fetch <remote> <branch>

ugyanaz, mint a fenti parancs, de csak a megadott ágat hozza le.

git fetch --all

egy power move, amely minden regisztrált távirányítót és fióktelepet lekér:

git fetch --dry-run

a --dry-run opció a parancs demo futtatását végzi., Ez kimenetet példákat intézkedéseket fog tenni során a lekérés, de nem alkalmazza őket.

git fetch a remote branch

a következő példa bemutatja, hogyan lehet letölteni egy távoli ágat, és frissíteni a helyi munkafolyamatot a távoli tartalomra. Ebben a példában tegyük fel, hogy van egy központi repo származás, amelyből a helyi tárolót a git clone parancs segítségével klónozták. Tegyük fel azt is, hogy egy további távoli adattár nevű coworkers_repo, amely tartalmaz egy feature_branch amelyet konfigurálni és letölteni., Ezekkel a feltételezésekkel állítsuk be a példát.

először be kell állítanunk a távoli repo-t a git remote parancs segítségével.

git remote add coworkers_repo [email protected]:coworker/coworkers_repo.git

itt létrehoztunk egy hivatkozást a munkatárs repo-jára a repo URL használatával. Most átadjuk ezt a távoli nevet agit fetch – nak a tartalom letöltéséhez.

git fetch coworkers_repo coworkers/feature_branch
fetching coworkers/feature_branch

most helyben van a munkatársak/feature_branch tartalma., Ezt a folyamatot a git checkout parancs segítségével kezdjük el az újonnan letöltött távoli ág fizetéséhez.

git checkout coworkers/feature_branch
Note: checking out coworkers/feature_branch'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>

a kimenet ebből a pénztár művelet azt jelzi, hogy Vagyunk egy különálló HEAD állam. Ez azt jelenti, hogy a HEAD ref egy olyan ref-re mutat, amely nincs összhangban a helyi történelemmel. Mivel aHEAD a munkatárs/feature_branch ref-re mutat, új helyi ágat hozhatunk létre ebből a ref-ből., A ‘ leválasztott HEAD‘ kimenet megmutatja, hogyan kell ezt megtenni a git checkout parancs segítségével:

git checkout -b local_feature_branch

itt létrehoztunk egy új helyi ágat, a local_feature_branch nevet. Így a frissítések HEAD a legújabb távoli tartalmakra mutatnak, és ettől a ponttól folytathatjuk a fejlesztést.

szinkronizálja az Origót a git fetch

programmal a következő példa végigvezeti a tipikus munkafolyamatot a helyi adattár szinkronizálásához a központi tároló fő ágával.,

git fetch origin

Ez megjeleníti a letöltött ágakat:

az új távoli ágak elköteleződései négyzetekként jelennek meg az alábbi ábrán körök helyett. Mint látható, a git fetch hozzáférést biztosít egy másik tároló teljes ágszerkezetéhez.,

ahhoz, Hogy lássuk, mit követ el bővült az upstream mester, lehet futtatni egy git log a származási/mester, mint egy szűrő:

git log --oneline master..origin/master

jóváhagyja a változtatásokat, majd egyesíti őket a helyi master branch használja a következő parancsokat:

git checkout master
git log origin/master

Akkor használhatjuk a git merge origin/master:

git merge origin/master

A származási/mester, mester ágak, most pont ugyanezt elkövetni, vagy szinkronizálja a felfelé irányuló fejlesztések.,

Git fetch summary

in review, git fetch egy elsődleges parancs, amelyet a tartalom távoli tárolóból történő letöltésére használnak. git fetch a git remote, git branch, git checkout és git reset egy helyi adattár a távoli állapotba. A git fetch parancs az együttműködő git munkafolyamatok kritikus darabja., git fetch has similar behavior to git pull, however, git fetch can be considered a safer, nondestructive version.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük