Намагаючись досягти git nirvana, я витрачаю день, навчаючись, як використовувати перебазування для ситуацій, коли я в даний час зливаюся.
Пробігаючись через те, що я вважаю потоком git 101 (який я розписую нижче), мені доводиться, push --force
підштовхуючи свої зміни назад до початку.
Я не єдиний - я знаю, що це закритий грунт (див. 1 , 2 , 3 , 4 , 5 ), і я розумію технічні причини, чому потрібна сила. Моє питання полягає в такому --- є багато (багато) записів у блозі, які оспівують rebase та те, як це змінило їхнє життя (див. 1 , 2 , 3 , 4, щоб перерахувати декілька), але жоден з них не згадує, що push --force
це частина їх потік. Однак майже у кожній відповіді на існуючі запитання щодо stackoverflow сказано щось на кшталт "так, якщо ти збираєшся перебазувати, ти повинен скористатися push --force
".
З огляду на кількість і релігійність прихильників перебазування, я повинен вірити, що використання функції "push --force" не є невід'ємною частиною потоку перебазування, і що якщо часто доводиться змушувати їх натискати, вони роблять щось неправильно .
push --force
це погана річ .
Тож ось мій потік. Яким чином я міг досягти тих самих результатів без сили?
Простий приклад
Дві гілки:
- v1.0 - гілка випуску, містить лише латки
- майстер - все для наступного великого випуску.
У мене є кілька фіксованих виправлень і кілька комітів для наступного випуску.
Я хотів би включити виправлення у свій майстер, щоб вони не були втрачені для наступного випуску. До просвітництва я б просто:
git checkout master
git merge v1.0
Але зараз я намагаюся
git checkout master
git rebase v1.0
Тож я зараз тут:
Час для:
git push
Без кісток.