Remote kezelés
Remote-ok, fetch, pull, push és biztonságos force push használata.
Remote kezelés (origin, fetch, pull, push)
A remote repository az a megosztott verzió, amelyen a csapat együttműködik. A Git lehetővé teszi több remote egyidejű kezelését is.
Remote alapfogalmak
- origin: a klónozás forrásának automatikus neve (konvenció)
- upstream: az eredeti repo neve fork esetén (konvenció)
- A remote branch-ekre
origin/main,origin/developformában hivatkozunk
git remote – remote-ok kezelése
# Remote-ok listázása
git remote -v
# Új remote hozzáadása
git remote add origin git@github.com:felhasznalo/repo.git
# Remote URL módosítása
git remote set-url origin git@github.com:felhasznalo/uj-repo.git
# Remote törlése
git remote remove origin
# Remote átnevezése
git remote rename origin upstreamgit fetch – letöltés beolvasztás nélkül
Mit csinál: Letölti a remote repository összes változását (új commitok, branch-ek, tagek), de nem módosítja a lokális branch-eket.
Mikor használjuk: Amikor tájékozódni akarunk a remote állapotáról anélkül, hogy változtatnánk a lokális kódon.
# Minden remote letöltése
git fetch
# Egy adott remote letöltése
git fetch origin
# Egy adott branch letöltése
git fetch origin main
# Törölt remote branch-ek eltávolítása a lokális listából
git fetch --prune
# vagy röviden
git fetch -pgit pull – letöltés és beolvasztás egyszerre
Mit csinál: Lényegében egy git fetch + git merge (vagy git rebase) egyben. Letölti és beolvasztja a remote branch változásait az aktuális lokális branch-be.
Mikor használjuk: Amikor szinkronizálni akarjuk a lokális branch-et a remote-tal.
# Alap pull (fetch + merge)
git pull
# Egy adott branch pull-olása
git pull origin main
# Pull rebase-zel (lineárisabb historyt eredményez)
git pull --rebase
# vagy röviden
git pull -r
# Csak akkor merge-öl, ha fast-forward lehetséges
git pull --ff-onlyTipp: A
git pull --rebaseajánlott, ha tiszta, lineáris historyt szeretnénk. Kerüljük a felesleges merge commitokat.
git push – feltöltés a remote-ra
Mit csinál: A lokális commitokat feltölti a remote repositoryba.
Mikor használjuk: Amikor el akarjuk osztani a változtatásainkat a csapattal, vagy biztonsági mentést szeretnénk.
# Alap push
git push
# Explicit remote és branch megadásával
git push origin main
# Új branch feltöltése és tracking beállítása
git push -u origin feature/new-feature
# Ezután elegendő: git push
# Tag-ek feltöltése
git push origin --tags
# Kényszer push (VIGYÁZAT: history újraírása után!)
git push --force-with-lease origin feature/my-branchFigyelmeztetés: A sima
git push --forceveszélyes, mert felülírja a remote historyt. Mindig a biztonságosabb--force-with-leaseopciót használd, amely ellenőrzi, hogy mások nem pushöltak-e közben.
git push --force-with-lease vs --force
# VESZÉLYES – felülírja mások változtatásait is
git push --force origin feature/my-branch
# BIZTONSÁGOS – csak akkor pushöl, ha senki más nem módosított
git push --force-with-lease origin feature/my-branchTracking branch beállítása
# Branch upstream-jének beállítása
git branch --set-upstream-to=origin/main main
# Ezután a git push / git pull upstream nélkül is működikRövid összefoglaló
git fetch– letöltés beolvasztás nélkül; biztonságos, informatív.git pull --rebase– letöltés és beolvasztás; lineárisabb historyt ad.git push -u origin <branch>– első push, tracking beállítással.- Soha ne használj sima
--force-t megosztott branch-ekre; helyette--force-with-lease. git fetch --prunetartja rendben a régi remote branch-ek listáját.