Представим вы несколько дней работали, писали код и наконец-то сделали коммит:
Можно добавить ещё один коммит поверх, что-то вроде:
Вместо второго коммита "правим" первый коммит, дописывая amend:
git commit -m "#715 changed color of button from red to green" git pushИ тут вы понимаете, что забыли убрать какой-нибудь console.log() или fmt.Println().
Можно добавить ещё один коммит поверх, что-то вроде:
git commit -m "#715 clean unnecessary code"Но в некоторых командах это могут посчитать мусорным коммитом. Что делать?
Вместо второго коммита "правим" первый коммит, дописывая amend:
git commit --amend -m "#715 changed color of button from red to green"И теперь можно пушить снова. Но сервер не даст запушить, ведь у нас локально и на ремоуте уже разные истории одной ветки. Можно запушфорсить:
git push forceНо это может быть очень плохо, если над веткой работает несколько человек. Кто-то мог уже поверх нашего коммита свои коммиты накатать. Но есть хороший параметр force-with-lease, который перезапишет ветку только тогда, когда никто поверх не дописал свои коммиты:
git push --force-with-leaseВ этом случае никто не пострадает.