Обзор ветки 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, конечно).

Если вы предпочитаете более чистую историю или это проще - то сделайте ребаз. В противном случае возврат будет так же хорошо.

Другие вопросы по тегам