Odpowiedź jest, git każe ci najpierw pobrać.
Prawdopodobnie ktoś inny naciskał już na mastering, a twoje zatwierdzenie jest opóźnione. Dlatego musisz pobrać, scalić zestaw zmian, a następnie będziesz mógł ponownie naciskać.
Jeśli tego nie zrobisz (lub co gorsza, jeśli wymusisz to za pomocą --force
opcji), możesz zepsuć historię zmian.
EDYCJA: Bardziej szczegółowo omawiam ostatni punkt, ponieważ facet tutaj właśnie dał bardzo złą radę dotyczącą korzystania z --force
opcji.
Ponieważ git to DVCS, idealnie wielu innych programistów pracuje nad tym samym projektem co Ty, używając tego samego repozytorium (lub jego rozwidlenia). Jeśli wymusisz nadpisanie swoim zestawem zmian, twoje repozytorium będzie niezgodne z danymi innych osób, ponieważ „przepisałeś historię”. Sprawisz, że inni ludzie będą nieszczęśliwi, a repozytorium ucierpi. Prawdopodobnie kociak na świecie też będzie płakał.
TL; DR
- Jeśli chcesz rozwiązać, najpierw pobierz (a następnie scal).
- Jeśli chcesz się włamać, skorzystaj z
--force
opcji.
Jednak prosiłeś o to pierwsze. Postaw na 1) zawsze, nawet jeśli zawsze będziesz używać git samodzielnie, ponieważ jest to dobra praktyka.
próbować:
Po napisaniu tego kodu otrzymałem inny błąd: (bez przewijania do przodu)
Piszę ten kod:
I rozwiązałem mój problem
źródło
git merge master
.Powinieneś użyć
git pull
, to polecenie wykonaj a,git fetch
a następnie wykonajgit merge
.Jeśli użyjesz
git push origin master --force
polecenia, możesz mieć problemy w przyszłości.źródło
pull jest zawsze właściwym podejściem, ale jednym wyjątkiem może być próba konwersji systemu plików bez Git do repozytorium Github. Tam musiałbyś wymusić pierwsze zatwierdzenie.
źródło
Spróbuj tego polecenia git
lub brak siły
-f
git push origin master -f
źródło
Jak stwierdzono w komunikacie o błędzie, musisz najpierw „pobrać”. To zadziałało dla mnie. Użyj polecenia:
git fetch origin master
Następnie wykonaj następujące kroki, aby scalić:
git pull origin master
git add .
git commit -m 'your commit message'
git push origin master
źródło
Spróbuj tego polecenia, aby go rozwiązać -
Lub
źródło
Możesz użyć następującego polecenia: Najpierw sklonuj nową kopię repozytorium, używając flagi --mirror:
Następnie postępuj zgodnie z kodami:
Dodawanie istniejącego projektu do GitHub za pomocą wiersza poleceń
Nawet jeśli to nie zadziała, możesz po prostu zakodować:
lub
źródło
Wykonaj czynności podane poniżej, ponieważ miałem ten sam problem:
(Aby sprawdzić, czy lokalny oddział można łatwo połączyć ze zdalnym)
(Teraz wypchnij całą zawartość lokalnego repozytorium git do repozytorium online)
źródło
Jest prawdopodobne, że ktoś inny (np. Twój kolega) umieścił zatwierdzenia
origin/master
, których nie ma w twoim lokalnymmaster
oddziale, a ty próbujesz wypchnąć niektóre zatwierdzenia z lokalnego oddziału na serwer. W 99% przypadków, zakładając, że nie chcesz usunąć ich pracyorigin
, masz dwie możliwości:2) Scal ich zmiany w lokalnym oddziale, a następnie wypchnij scalony wynik.
git checkout master git pull # resolve conflicts here git push
(Zauważ, że w tym przypadku
git pull
jest to w zasadzie tylko agit fetch
i agit merge
).1) Przebuduj swój lokalny oddział, aby wyglądało na to, że twój kolega najpierw dokonał zatwierdzeń, a następnie dokonał zatwierdzeń. Dzięki temu historia zmian jest ładna i liniowa - i unika się „zatwierdzenia scalania”. Jednakże, jeśli masz konflikty ze zmianami swojego kolegi, być może będziesz musiał rozwiązać te konflikty dla każdego z twoich zatwierdzeń (a nie tylko raz) w najgorszym przypadku. Zasadniczo jest to przyjemniejsze dla wszystkich innych, ale dla ciebie większy wysiłek.
git pull --rebase # resolve conflicts here git push
(Zauważ, że
git pull --rebase
to zasadniczo agit fetch
i agit rebase origin/master
.)źródło
Czasami dzieje się tak, gdy duplikujesz pliki, zwykle w rodzaju README.
źródło
Twój błąd może wynikać z gałęzi scalania.
Po prostu wykonaj następujące czynności:
krok 1:
git pull origin master
(w przypadku otrzymania komunikatu zignoruj go)krok 2:
git add .
krok 3:
git commit -m 'your commit message'
krok 4:
git push origin master
źródło
Najpierw powinieneś użyć
git pull
, potem polecenie wykonaj a,git fetch
a następnie wykonaj git merge.Jeśli użyjesz
git push origin master --force
polecenia, możesz mieć problemy w przyszłości.źródło
Pokonałem to, sprawdzając nową gałąź w następujący sposób:
Zostają ci 2 gałęzie: główna i nowa gałąź, które możesz później połączyć.
źródło
Powodem, dla którego tak się stało w moim przypadku, było utworzenie linku do repozytorium GitHub, zainicjowałem go plikiem README
Podczas tworzenia pilota Git nie inicjalizuj go plikiem README, w przeciwnym razie wyświetli się błąd
Nie rób tego i na pewno zadziała dobrze Zamiast tego zainicjuj go plikiem readme jeśli chcesz po wypchnięciu do gałęzi głównej
źródło
Wystarczy podać nazwę oddziału wraz z nazwą zdalną.
źródło
To zadziałało dla mnie, ponieważ żadne z innych rozwiązań nie zadziałało. NAWET SIŁA!
https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/resolving-a-merge-conflict-using-the-command-line
Musiałem tylko przejść przez Git Bash
Potem z powrotem do mojego cmd i mogłem:
git push heroku master
co w moim przypadku było problemem.źródło
--force
opcja zadziałała dla mnie użyłemgit push origin master --force
źródło
! [odrzucono] master -> master (najpierw pobierz) błąd: nie udało się przesłać niektórych referencji do „[email protected]:”
Pomyślnie rozwiązano problem za pomocą polecenia --force. więc musisz użyć
git push origin master --force
źródło
Użyj tego polecenia:
źródło
ta praca dla mnie
git init
git add --all
3. git commit -m "nazwa"
4. git push origin master - force
źródło
To zadziałało dla mnie:
źródło
Problem rozwiązany
Problem, który miałem
Ja też miałem ten sam problem. Problem polega na tym, że twoje
commits
w innych repozytoriach nie powiodły się,pushed
więc musisz uruchomić następujące polecenia:git fetch origin master
wynik:
From https://github.com/username/repo-name * branch master -> FETCH_HEAD
git merge origin master
wynik:
Merge made by the 'recursive' strategy.
repo-name/ReadMe.md | 1 -
1 file changed, 1 deletion(-)
git push
wynik:
Enumerating objects: 8, done. Counting objects: 100% (8/8), done. Delta compression using up to 8 threads Compressing objects: 100% (6/6), done. Writing objects: 100% (6/6), 1.00 KiB | 1.00 MiB/s, done. Total 6 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), completed with 1 local object. To https://github.com/user_name/repo-name.git 0852d5vf..70v56d9 master -> master
Dziękuję bardzo
źródło
Myślałem, że to z powodu połączenia, ale używam tego:
źródło
--force
zepsujegit
historię zmian , nie byłoby dobrze jej używać.Jego proste użycie tego polecenia:
i to wykona twoją pracę
źródło