Как я редактирую неправильное сообщение о фиксации в мерзавце (что я продвинул)?

150
задан Mehdi Raash 29 July 2017 в 16:14
поделиться

2 ответа

Сообщение от Linus Torvalds может ответить на Ваш вопрос:

Изменяют/редактируют старые сообщения о фиксации

Короткий ответ: Вы не можете (если продвинуто).

<час>

извлечение (Linus называет BitKeeper BK):

примечание Стороны, только из исторического интереса: в BK Вы могли.

И если Вы привыкли к нему (как я был) это было действительно довольно практично. Я применил бы бомбу патча от Andrew, заметить, что что-то было неправильно, и просто отредактируйте ее перед выставлением ее.

я, возможно, сделал то же с мерзавцем. Было бы достаточно легко заставить просто сообщение о фиксации не быть частью имени, и все еще гарантировать, что история была нетронутой, и позвольте, "ремонтируют комментарии позже" вещь.

, Но я не сделал.

Часть его является просто "внутренней непротиворечивостью". Мерзавец просто инструмент для очистки система благодаря всему SHA1-защищаемому и всем объектам, которые рассматривают то же, независимо от типа объекта. Да, существует четыре различных видов объектов, и они все действительно отличаются, и они не могут использоваться таким же образом, но в то же время даже если их кодирование могло бы отличаться на диске, концептуально они все работают точно то же.

, Но внутренняя непротиворечивость не действительно оправдание за то, что были негибки, и ясно это было бы очень гибко, если мы могли бы просто согласовать ошибки после того, как они происходят. Таким образом, это не действительно веский довод.

реальный причина мерзавец не позволяет, Вы для изменения сообщения о фиксации заканчиваете тем, что были очень просты: тем путем можно доверять сообщениям. Если Вы позволили людям изменять их впоследствии, сообщения по сути не очень надежны.

<час>

, Чтобы быть завершенными, Вы могли переписывать свою локальную историю фиксации для отражения то, что Вы хотите, как предложенный sykora (с некоторой переосновой, и сбросьте - трудно, удушье!)

Однако, как только Вы публикуете свою пересмотренную историю снова git push origin +master:master, + знак, вынуждающий нажатие произойти, даже если это не приводит к фиксации "ускоренной перемотки вперед")..., Вы могли бы войти в некоторую проблему .

Извлечение из этого другой ТАК вопрос:

я на самом деле когда-то продвинул с - вызывают в git.git репозиторий и ругался ДОСТИЖЕНИЕМ Linus. Это создаст много проблем для других людей. Простой ответ, "не делают этого".

125
ответ дан Community 23 November 2019 в 22:20
поделиться

(От http://git.or.cz/gitwiki/GitTips#head-9f87cd21bcdf081a61c29985604ff4be35a5e6c0 )

, Как изменить фиксации глубже в истории

, Так как история в Мерзавце неизменна, фиксируя что-либо кроме новой фиксации (фиксация, которая не является главой филиала), требует, чтобы история была переписана от измененной фиксации и вперед.

можно использовать StGIT для этого, инициализировать ответвление при необходимости, отменив фиксацию до фиксации, которую Вы хотите измениться, вытолкать к нему при необходимости, внести изменение, тогда обновляют патч (с-e опцией, если Вы хотите исправить сообщение о фиксации), затем продвиньте все и фиксацию stg.

Или можно использовать переоснову, чтобы сделать это. Создайте новое временное ответвление, перемотайте его к фиксации, Вы хотите изменить сброс мерзавца использования - трудно, изменение, которые фиксируют (это была бы вершина текущей головы), затем переосновное ответвление сверху измененной фиксации, с помощью перебазы мерзавцев - на.

Или можно использовать перебазу мерзавцев - интерактивный, который позволяет различные модификации как переупорядочение патча, сворачивание...

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

2
ответ дан sykora 23 November 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: