Pusholni — mi ez, hogyan működik a git push és mikor kell

Szerző: IT Sectr Megjelenés: 2026-08-01 Olvasási idő: 6 perc

Pusholni annyit tesz, mint helyi commitokat küldeni egy távoli Git repozitóriumba, ezzel elérhetővé téve azokat a csapat többi tagja számára. A push után a változtatások megjelennek a GitHubon, GitLabon vagy Bitbucketen. A GitHub Octoverse 2024 adatai szerint naponta több mint 10 millió commit kerül pusholásra a platformra. Git push a kulcsfontosságú művelet az elosztott csapatban végzett munka szinkronizálásához.

Főbb pontok

  • Pusholni — helyi commitokat küldeni a távoli repozitóriumba
  • Push után a változtatások láthatóvá válnak az egész csapat számára
  • Fő platformok — GitHub, GitLab, Bitbucket
  • Biztonságos push — csak feature ágakba, nem közvetlenül a main-be
  • Pre-push horgok — automatikus kódellenőrzés küldés előtt

Mi az a push a Gitben

A Git push egy parancs, amely átviszi a commitokat a helyi repozitóriumból a távoliba. Ellentétben a committal, amely csak a fejlesztő helyi gépén menti el a változtatásokat, a push publikálja ezeket a változtatásokat az egész csapat számára. Push kötelező lépés a Pull Request létrehozása és a telepítés előtt.

A Git architektúrája feltételezi, hogy minden fejlesztő a saját helyi repozitóriumában dolgozik. A commitok helyben jönnek létre és halmozódnak fel, amíg a fejlesztő úgy nem dönt, hogy pusholja őket. Ez szabadságot ad: sok helyi commitot lehet készíteni, kísérletezni és átírni a történetet anélkül, hogy befolyásolná a kollégákat.

bash
# Push az origin remote-ba, main ágba
git push origin main

# Aktuális ág pusholása remote-ba upstream-pel
git push -u origin feature/new-dashboard

# Összes ág pusholása egyező nevekkel
git push --all origin

# Force push lease-szel (biztonságos force push)
git push --force-with-lease

A push után a távoli repozitórium frissíti a refs-eket (ágakra mutató hivatkozásokat) úgy, hogy az új commitokra mutassanak. Más fejlesztők ezeket a változtatásokat a git pull vagy git fetch segítségével szerezhetik meg. Éppen ez a commitcsere képezi az együttműködésen alapuló fejlesztés alapját.

Hogyan működik a git push

A git push parancs összehasonlítja a helyi és távoli ágakat, és csak a hiányzó commitokat továbbítja. A Git nem küldi el újra az összes fájlt — csak a deltát továbbítja, ami gyorssá teszi a push-t még nagy repozitóriumok esetén is. Git Protokoll smart transfer-t használ, amely minimalizálja az átvitt adatok mennyiségét.

Ha a távoli ág olyan commitokat tartalmaz, amelyek helyben nem léteznek, a push elutasításra kerül. Ez egy védelmi mechanizmus, amely megakadályozza a változtatások elvesztését. Ilyen helyzetben a fejlesztőnek először git pull-t kell végrehajtania, egyesítenie a változtatásokat, és csak azután pusholnia újra. Alternatíva a force push, amely felülírja a távoli ágat, de óvatosan kell használni.

ParancsMűveletMikor használjuk
git pushszabványos push a követett ágbaszokásos változtatásküldés
git push -upush upstream beállítássalúj ág első push-ja
git push --force-with-leasebiztonságos force pushsaját ág rebase-e után
git push --forcekényszerített pushcsak ha biztos az ütközések hiányában
git push --deletetávoli ág törlésetisztítás az ág egyesítése után

A távoli repozitóriumok megértése a kulcs a helyes push-hoz. Általában az origin-t használjuk — a távoli repozitórium alapértelmezett nevét. A git remote -v parancs megjeleníti a távoli repozitóriumok listáját és azok URL-jeit. Több remote is hozzáadható (például origin a fő repozitóriumhoz és upstream a fork-hoz).

Mikor kell pusholni a változtatásokat

Az alapszabály: pusholni kell minden logikailag befejezett munkaszakasz után. Ha egy fejlesztő elvégzett egy feladatot vagy annak egy részét — itt az ideje pusholni. Azonban a befejezetlen munka pusholása, amely elrontja a build-et, nem ajánlott. Működő build a minimális követelmény a push-hoz bármely ágba.

A csapatmunkában a következő ritmus elfogadott: reggel — git pull a kollégák változtatásainak lekéréséhez, napközben — néhány commit és egy-két push, este — az összes befejezett feladat végső push-ja. Minél gyakrabban pushol egy fejlesztő, annál kisebb a konfliktusok kockázata az ágak egyesítésekor és annál átláthatóbb a munka előrehaladása.

  • A feladat befejezése után — commitolni és pusholni a végső megoldást a feature ágba
  • Távozás előtt — pusholni a befejezetlen munkát a feature ágba (nem a main-be!)
  • PR létrehozása előtt — meggyőződni, hogy minden commit pusholva van és elérhető a review-hoz
  • Rebase után — pusholni --force-with-lease-szel a saját feature ágba

A biztonságos push szabályai

A biztonságos push szabályok összessége, amelyek megakadályozzák az adatvesztést és a konfliktusokat a csapatban. Az első és legfontosabb szabály: soha ne pusholjunk közvetlenül a main vagy master ágba, hacsak a projektben nincs beállítva közvetlen telepítés. Modern csapatokban a main ág védelmét GitHub branch protection szinten konfigurálják.

Második szabály: push előtt szinkronizáljunk a távoli ággal. Hajtsuk végre a git pull --rebase-t, hogy elkerüljük a merge commit-ot az egyesítésnél. Ez leegyszerűsíti a történetet és lineárissá teszi. Ha a push elutasításra kerül — ne használjunk puszta force push-t, hanem először ellenőrizzük, milyen commitok jelentek meg a távoli ágban.

Harmadik szabály: állítsunk be pre-push horgokat, amelyek automatikusan futtatják a teszteket és a linter-t a küldés előtt. Ha a tesztek megbuknak — a push blokkolásra kerül. Az ilyen horgokat a Husky vagy Git hooks (pre-push fájl a .git/hooks-ban) segítségével lehet konfigurálni.

Negyedik szabály: ne pusholjunk nagy bináris fájlokat. A Git nem bináris artefaktumok tárolására készült — felduzzasztják a repozitóriumot és lelassítják a műveleteket. Nagy fájlokhoz Git LFS (Large File Storage) használatos. Ha egy bináris fájl már pusholva van és bekerült a történetbe, a git filter-branch segítségével kell eltávolítani.

Mit tegyünk, ha a push nem sikerült

A sikertelen push leggyakoribb oka — a távoli ág olyan commitokat tartalmaz, amelyek helyben nem léteznek. Ez akkor történik, amikor egy másik fejlesztő pusholta a változtatásait ugyanabba az ágba. Megoldás: hajtsuk végre a git pull-t, oldjuk meg az esetleges konfliktusokat, és ismételjük meg a push-t.

bash
# Push elutasítva — először fetch és rebase
git fetch origin
git rebase origin/main
# Konfliktusok megoldása, majd:
git push --force-with-lease

# Vagy egyszerűen a távoli változtatások egyesítése
git pull origin main
git push

Második ok — írási jogosultság hiánya az ágban. Ha a main ág branch protection szabállyal védett, a közvetlen push-ok tiltottak. Megoldás: pusholjunk feature ágba és hozzunk létre Pull Request-et. A védelmi beállításokat általában a GitHub settings vagy GitLab protected branches segítségével kezelik.

Harmadik ok — hitelesítési problémák. Elavult hitelesítő adatok, SSH-ra váltás vagy personal access token megváltozása. Megoldás: ellenőrizzük a remote URL-t (git remote -v) és frissítsük a hitelesítő adatokat. 2021-től a GitHub megszüntette a jelszóval történő hitelesítést HTTPS-hez — személyes token vagy SSH-kulcs használatos.

Gyakran Ismételt Kérdések

Mit jelent pusholni a Gitben?

A pusholás azt jelenti, hogy a fejlesztő repozitóriumából helyi commitokat küldünk egy távoli szerverre (GitHub, GitLab). A push után a változtatások elérhetővé válnak a csapat számára, megjelennek a Pull Request-ben és telepíthetők. Push a helyi kódmunka utolsó szakasza a csapat együttműködése előtt.

Mi a különbség a push és a commit között?

A commit helyben menti el a változtatásokat, a fejlesztő repozitóriumában. A push elküldi ezeket a helyi commitokat a távoli szerverre. Sok commitot lehet készíteni push nélkül, de ahhoz, hogy a kollégák lássák a változtatásokat, pusholni kell. Commit — mentés, push — publikálás.

Mit tegyünk, ha a git push elutasításra kerül?

A push elutasításra kerül, ha a távoli ág olyan commitokat tartalmaz, amelyek helyben nem léteznek. Megoldás: hajtsa végre a git pull-t (vagy git fetch + git rebase-t), egyesítse a változtatásokat és ismételje meg a push-t. Ha a saját feature ágában dolgozik és biztos a változtatásokban, használja a git push --force-with-lease-t.

Visszavonható egy már elvégzett push?

Igen, de óvatosan. Használja a git revert <commit-hash> parancsot — ez létrehoz egy commitot, amely visszavonja a változtatásokat. Ezután pusholja az új commitot. Ha commitokat kell eltávolítani a történetből, használja a git reset + git push --force-with-lease-t, de csak a saját feature ágában. git revert a biztonságos választás a megosztott ágakhoz.

Miért fontos naponta pusholni?

A rendszeres push megakadályozza az adatvesztést a helyi gép meghibásodása esetén, csökkenti a konfliktusokat az egyesítésnél és átláthatóságot biztosít a csapatnak a munka előrehaladásáról. Ha egy fejlesztő egy hétig nem pushol, a változtatásai jelentősen eltávolodhatnak a main ágtól, ami komplex konfliktusokhoz vezet a merge során.

Összefoglaló

  • Pusholni — helyi commitokat küldeni a távoli repozitóriumba a csapat számára
  • Különbség a committól — commit helyben ment, push a szerveren publikál
  • Main védelme — csak feature ágakba pusholni, main-be PR-en keresztül
  • Force push — csak --force-with-lease-szel használni saját ágakban
  • Pre-push ellenőrzések — tesztek és linterek Git hooks vagy Husky segítségével
  • Gyakoriság — pusholni minden logikailag befejezett változtatás után
  • Problémák — push elutasításakor először pull vagy rebase, majd újra

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is