Git Push
Ostatnia aktualizacja
git push wysyła commity z lokalnej gałęzi do jej zdalnego odpowiednika (np. na GitHubie). Gdy gałąź ma ustawiony upstream, wystarczy zwykłe git push; pierwszy push nowej gałęzi używa -u, żeby utworzyć zdalną gałąź i ustawić śledzenie, dzięki czemu kolejne push i pull nie wymagają argumentów.
Wypróbuj te polecenia w terminalu online: prawdziwa powłoka w przeglądarce, bez żadnej instalacji.
Składnia
| Polecenie | Co robi |
|---|---|
git push | Wypycha bieżącą gałąź do jej upstreamu |
git push -u origin feature | Wypycha nową gałąź i ustawia upstream |
git push origin main | Wypycha do konkretnego repozytorium zdalnego i gałęzi |
git push --tags | Wypycha wszystkie lokalne tagi |
git push --force-with-lease | Bezpieczny force push po rebase |
Typowe przypadki
| Cel | Polecenie |
|---|---|
| Wypchnąć zupełnie nową gałąź | git push -u origin feature |
| Wypchnąć po ustawieniu upstreamu | git push |
| Wypchnąć jeden tag | git push origin v1.0.0 |
| Usunąć zdalną gałąź | git push origin --delete feature |
Przykład krok po kroku
| Krok | Polecenie | Wynik |
|---|---|---|
| 1 | git remote add origin <url> | Łączy lokalne repozytorium z repozytorium zdalnym pod nazwą origin |
| 2 | git push -u origin main | Tworzy main w repozytorium zdalnym i ustawia ją jako upstream twojej lokalnej main |
| 3 | git push | Każdy kolejny push na main nie wymaga argumentów |
Najczęstsze pytania o git push
Co robi git push?
Wysyła commity, które ma twoja lokalna gałąź, a których brakuje zdalnej, i przesuwa zdalną gałąź tak, żeby się zgadzała. Wysyła tylko commity: niezatwierdzone zmiany zostają na twoim komputerze, więc najpierw zrób commit. Jeśli repozytorium zdalne ma commity, których nie masz, push zostaje odrzucony, dopóki nie zrobisz pull albo rebase.
Jak wypchnąć nową gałąź do repozytorium zdalnego?
Uruchom
git push -u origin <branch>. -u (skrót od --set-upstream) tworzy gałąź w repozytorium zdalnym i łączy z nią twoją lokalną gałąź, więc później zwykłe git push i git pull działają bez argumentów. Zdalna gałąź nie istnieje aż do tego pierwszego push.Dlaczego git push zgłasza 'no upstream branch'?
Twoja lokalna gałąź nie jest jeszcze połączona ze zdalną gałęzią. Wypchnij ją przez
git push -u origin <branch>, żeby utworzyć zdalną gałąź i ustawić upstream. Potem samo git push wie, dokąd wysyłać commity.Jak wypchnąć tagi?
Tagi nie są domyślnie wypychane. Wypchnij pojedynczy tag przez
git push origin <tagname> albo wszystkie naraz przez git push --tags. To częsta pułapka: tag utworzony lokalnie nie pojawi się w repozytorium zdalnym, dopóki go jawnie nie wypchniesz.Jak bezpiecznie zrobić force push?
Po przepisaniu historii (rebase albo amend) używaj
git push --force-with-lease zamiast --force. Nadpisuje ono zdalną gałąź tylko wtedy, gdy nikt inny nic nie wypchnął od twojego ostatniego fetch, co chroni pracę zespołu. Pełne wyjaśnienie znajdziesz na stronie git force push.Co oznacza git push -u origin main?
origin to repozytorium zdalne (zobacz git remote), main to gałąź, a -u ustawia tę zdalną gałąź jako upstream twojej lokalnej main. To polecenie, które GitHub pokazuje przy nowym repozytorium: po jednorazowym uruchomieniu git push i git pull na main nie wymagają argumentów.Jaka jest różnica między git push a git pull?
Przenoszą commity w przeciwnych kierunkach.
git push wysyła twoje lokalne commity do repozytorium zdalnego; git pull pobiera nowe commity z repozytorium zdalnego i scala je z twoją gałęzią. Push odrzucony jako non-fast-forward zwykle oznacza, że najpierw trzeba zrobić pull. Co pull robi pod spodem, wyjaśnia git fetch vs pull.Czy mogę to przećwiczyć online?
Tak. Otwórz terminal online i uruchom
git push w prawdziwej powłoce w przeglądarce, bez żadnej instalacji. Darmowy interaktywny kurs Git w Coddy też krok po kroku omawia pracę z repozytoriami zdalnymi.