git: aktualizacje zostały odrzucone, ponieważ zdalny zawiera pracę, której nie masz lokalnie
Pracuję w zespole z kilkoma programistami używającymi Gita na BitBucket. Wszyscy pracujemy nad dev
gałęzią, nie naciskając na master
aż do wydania.
Jeden z deweloperów popełnił błędny kod, który przerobił mój własny przez przypadek, a teraz próbuję wypchnąć poprawny kod z powrotem do repo. Czytam o tym błędzie od kilku dni, nie mogę już naciskać na repo, ponieważ dostaję następujący błąd:
! [rejected] master -> dev (fetch first)
error: failed to push some refs to 'https://[email protected]/repo_user/repo_name.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Postępuję zgodnie z instrukcjami i pull
, ale wtedy otrzymuję konflikt scalający. Po wpisaniu Komunikatu o konflikcie merge, mój kod lokalny jest teraz błędnym kodem, który inny programista przesłał przez przypadek(zgodnie z oczekiwaniami z pull
). Więc zamieniam nieprawidłowy kod z kopii zapasowej skopiowałem przed commiting, a kiedy próbuję wcisnąć ponownie, dostaję ten sam błąd.
To naprawdę frustrujące, naprawdę chcę pomóc mojemu zespołowi i wnieść swój wkład, ale nie mogę z powodu tego błędu. Czy ktoś wie jak rozwiązać ten problem? Ja bym bardzo doceniam każdą pomoc.
Są to komendy, które uruchamiam, aby zatwierdzić, jeśli to komuś pomoże:
git pull remotename master:dev
git add --all
git commit -m "some message"
git pull remotename master:dev
git push remotename master:dev
Myślałem, że jeśli utrzymam ten rozkaz, nie otrzymam konfliktów scalonych. Chyba się myliłem. Thanks again
Update:
Dodam, że od kilku godzin szukałem w Google i stackoverflow i postępowałem zgodnie z różnymi instrukcjami, ale nadal nie mogę push
do gałęzi dev
.
7 answers
git pull <remote> master:dev
pobierze remote/master
gałąź i połączy ją z Twoją local/dev
gałąź.
git pull <remote> dev
pobierze gałąź remote/dev
i połączy ją z bieżącą gałąź.
Myślę, że powiedziałeś, że konfliktowy commit jest na remote/dev
, więc to jest gałąź, którą prawdopodobnie zamierzałeś pobrać i połączyć.
W takim przypadku, nie łączyłeś konfliktu w lokalną gałąź, co jest trochę dziwne, ponieważ powiedziałeś, że widziałeś niepoprawny kod w swojej roboczej kopii. Może chcesz sprawdzić co dzieje się w remote/master
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-23 02:45:01
Użyj tego polecenia w Terminalu
Git push - f origin master
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-13 07:46:51
Dzieje się tak, gdy próbujemy wcisnąć do zdalnego repozytorium, ale na zdalnym utworzyliśmy nowy plik, który nie został jeszcze wyciągnięty, powiedzmy Readme
. W takim przypadku, jak mówi błąd
Git odrzuca aktualizację
Ponieważ nie mamy aktualizacji zdalnego w naszym lokalnym środowisku. Więc najpierw ściągnij z pilota
git pull
Zaktualizuje lokalne repozytorium i doda nowy plik Readme
.
Następnie wypchnij zaktualizowane zmiany do zdalnego
git push origin master
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-27 14:29:15
Naprawiłem to, nie jestem do końca pewien, co zrobiłem. Próbowałem po prostu naciskać i ciągnąć za pomocą:
git pull <remote> dev
zamiast
git pull <remote> master:dev
Mam nadzieję, że to pomoże komuś, jeśli ma ten sam problem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-12 07:49:47
Miałem ten błąd i to dlatego, że nie było aktualizacji na serwerze, ale SourceTree nie pokazywał żadnych dostępnych aktualizacji(prawdopodobnie dlatego, że byłem offline, gdy Ostatnio sprawdzane). Więc zrobiłem odświeżenie w drzewie źródłowym i teraz pokazuje 2 elementy do wypchnięcia zamiast 1 elementu.
Więc koniecznie naciśnij odśwież lub ciągnij Jeśli pojawi się ten błąd, a następnie spróbuj ponownie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-10 22:25:37
Well actually github is much simpler than we think and absolutely it happens whenever we try to **push** even after we explicitly inserted some files in our git repository so, in order to fix the issue simply try..
: git pull
I wtedy..
: git push
Uwaga: Jeśli przypadkowo utknąłeś w edytorze vim po wyciągnięciu repozytorium, nie martw się po prostu zamknij edytor vim i spróbuj push:)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-23 05:49:02
Musisz wprowadzić:
$ git pull
$ git fetch
$ git merge
Jeśli użyjesz git push origin master --force
, będziesz miał duży problem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-19 09:45:25