#git
#git
Вопрос:
Я ищу способ добиться следующего рабочего процесса:
- Я вношу небольшое изменение в свой код
- Я добавляю текст, описывающий предыдущее изменение кода, к сообщению, которое будет прикреплено к моей следующей фиксации
- Повторяйте шаги 1 и 2, пока не будете готовы к фиксации
- Фиксация с автоматическим прикреплением полного текста сообщения (возможно, с возможностью добавления окончательного текста к сообщению)
РЕДАКТИРОВАТЬ: Сообщение будет применяться только к одной фиксации. Это позволило бы вам постоянно добавлять к вашему сообщению о предстоящей фиксации.
В настоящее время лучшим решением является фиксация первого изменения, а затем фиксация — изменение при каждом последующем изменении и модификация предыдущего сообщения.
Комментарии:
1. Я проголосовал за переход на Stack Overflow.
2. На самом деле собирался это сделать, но подумал, что получу много голосов за повторный перенос сюда…
3. Разве у git нет отдельного push-шага для передачи всех ваших изменений в репозиторий? Вы можете выполнять фиксации в своем локальном репозитории с любой степенью детализации, которую вы хотите (фактически повторяя шаги 1 и 2), а затем выполнить push, когда будете готовы (это ваш шаг 4).
4. Я определенно мог бы зафиксировать —изменить , а затем каждый раз изменять сообщение. Это хорошая идея?
5. @Jack Я больше думаю о многих локальных фиксациях, за которыми следует одно нажатие.
Ответ №1:
Почему бы не изменить ваш «шаг 3» на просто «фиксацию»? Лучшая часть git заключается в том, что она позволяет — даже поощряет — множество небольших, добавочных коммитов в ваш локальный репозиторий.
Комментарии:
1. Хорошо, я понимаю, о чем вы говорите. Я предполагаю, что это сводится к созданию небольших коммитов. В противном случае я буду использовать решение —amend, если потребуется. Спасибо!
Ответ №2:
Если вам когда-нибудь понадобится использовать git bisect
для отслеживания ошибки, вы будете рады небольшим коммит.
С другой стороны, если изменения действительно тривиальны, например, вы выполняете по одному в минуту, часто упускаемое из виду решение — просто оставить окно GUI открытым и добавить строки в текстовую область сообщения о фиксации.
Ответ №3:
Вы можете объединить несколько небольших коммитов в один, используя интерактивную перебазировку. Смотрите http://book.git-scm.com/4_interactive_rebasing.html для описания и примера.
По сути, вам нужно фиксировать ваши изменения одно за другим в отдельные коммиты, а затем упаковать (или раздавить) их в один, как только вы закончите. Поскольку это изменяет историю, это следует выполнять только в вашем локальном репозитории до того, как коммиты были отправлены.