Обзор ветки Git: переписать или добавить коммит?
Допустим, ветвь функции имеет следующую историю:
- (4) Измените D, чтобы использовать B и A
- (3) Измените C, чтобы использовать A
- (2) Добавить B
- (1) Добавить А
После рассмотрения принято решение, что "Б" не должен заставлять его развиваться.
Тебе следует
1- rebase -i
переписать историю / некоторый код так, чтобы ветвь функции после принудительного нажатия стала:
- (7) Измените D, чтобы использовать A
- (6) Изменить C, чтобы использовать A
- (5) Добавить А
или же
2- Добавьте коммит, который избавляется от отклоненной функции и нажмите, давая:
- (5) Избавиться от Б
- (4) Измените D, чтобы использовать B и A
- (3) Измените C, чтобы использовать A
- (2) Добавить B
- (1) Добавить А
?
2 ответа
force push
никогда не рекомендуется в среде совместной работы, так как это влияет на локальные репозитории ваших товарищей по команде, поэтому я всегда стараюсь избегать этого.
Обычно я предпочитаю сохранять "историю":) наших решений в истории коммитов, поэтому в этом случае вариант (2) будет моим предпочтением, тем более что вы можете напрямую git revert
передайте # 2 (и добавьте еще один, чтобы удалить его из D, конечно).
Если вы предпочитаете более чистую историю или это проще - то сделайте ребаз. В противном случае возврат будет так же хорошо.