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 --forcepe 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.