git push în Git

Încarcă commit-urile locale pe serverul de la distanță (remote) pentru a fi partajate cu echipa.

Sintaxă comandă
git push [opțiuni] [remote] [ramură]

Ce face git push

Comanda git push publică commit-urile salvate local în depozitul central de pe GitHub, GitLab sau Bitbucket.

La primul push al unei ramuri noi se folosește parametrul -u (upstream). Acesta leagă ramura locală de cea de pe server, astfel încât pe viitor poți rula simplu doar git push sau git pull fără argumente suplimentare.

Opțiuni și argumente

Opțiune / Parametru Descriere
-u, --set-upstream Stabilește legătura de urmărire permanentă între ramura locală și cea de pe server.
--force-with-lease Forțează actualizarea ramurii remote, dar în siguranță: refuză operațiunea dacă altcineva din echipă a trimis între timp commit-uri noi.
--force, -f Forțează suprascrierea ramurii pe server (periculos: poate șterge definitiv munca colegilor).
--delete Șterge o ramură de pe serverul remote (ex. git push origin --delete feature/vechi).
--tags Trimite toate etichetele (release tags) locale pe server.

Exemple

Exemplul 1: Publicarea primei versiuni a proiectului pe GitHub

Opțiunea -u origin main configurează urmărirea automată.

git push -u origin main

Ieșire în terminal

Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (5/5), 450 bytes | 450.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To https://github.com/dexter/proiect.git
 * [new branch]      main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.

Exemplul 2: Ștergerea unei ramuri de pe server după finalizarea unui pull request

Curățăm ramura de feature de pe serverul la distanță.

git push origin --delete feature/login

Ieșire în terminal

 - [deleted]         feature/login

Greșeli frecvente

  • Folosirea comenzii distructive git push --force pe ramuri comune: dacă un coleg a făcut push înaintea ta, --force îi va șterge commit-urile fără avertisment! Folosește întotdeauna varianta mai sigură --force-with-lease.
  • Încercarea de a face push când ești în urmă cu istoricul: dacă serverul respinge push-ul cu „Updates were rejected because the remote contains work that you do not have locally”, trebuie să rulezi mai întâi git pull --rebase.

Comenzi înrudite

  • git pull: Descarcă și integrează într-un singur pas modificările de pe server în ramura locală curentă.
  • git fetch: Descarcă cele mai noi commit-uri și ramuri de pe serverul la distanță fără a modifica fișierele locale.
  • git remote: Gestionează lista serverelor și depozitelor la distanță conectate la proiectul local.