Git zapobiega popychaniu po zmianie commita
Zwykle po prostu biegam
git add file
git commit
git push
Ale jeśli poprawię commit przed naciśnięciem go (z git commit --amend
), następne naciśnięcie nie powiedzie się z
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Jak mogę pozwolić gitowi popchnąć zmiany bez łączenia gałęzi? Mam tylko jedną gałąź (master
) i jestem jedyną osobą używającą tego repo więc dlaczego to mówi?
Git branch-a:
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
EDIT: używając gitk HEAD @{u}
, widzę, że mam 2 gałęzie, jeden z oryginalnym commitem, a drugi ze zmienionym commitem.
3 answers
Tak powinno być tylko wtedy, gdy zmieniasz już popchnięty commit. Generalnie nigdy nie powinieneś tego robić, ponieważ modyfikujesz opublikowaną historię. Jednak w Twoim przypadku powinieneś być w stanie uniknąć push -f
, która nadpisze zdalny commit zmienioną wersją.
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-11-21 13:29:57
Tak ,nie powinieneś tego robić(naciskać commit, potem go zmieniać i próbować go ponownie wcisnąć).
Zamiast tego możesz cofnąć Git do poprzedniego commita bez zmiany plików, a następnie utworzyć nowy commit:
git reset --mixed origin/master
git add .
git commit -m "This is a new commit for what I originally planned to be an amendmend"
git push origin master
Utworzy to nowy commit ze zmianami, które zamierzałeś zmienić.
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
2016-11-08 09:18:06
Zmieniłeś wyciągnięty commit jak w
git pull origin master
git commit -a --amend -m "..."
git push
Możesz rozwiązać problem przywracając zmieniony commit:
git reset --mixed origin/master
, a następnie dokonując go ponownie jako pełnoprawny commit
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
2013-09-03 09:44:28