2016-06-11 3 views
1

У меня есть несколько «пунктов сохранения», и вы хотите их сквош, чтобы иметь более читаемую временную шкалу. Вот моя ситуация:Как выполнить git-сквош-коммит с заданными сообщениями фиксации

> git log 

29a94be3d2d4f Added some feature 
9bf0f2730234e savepoint   << Pushed here 
240e1ce8893e9 Add ignore rule 
01462e889d416 savepoint 
6238e3b775027 Fixed Something << Pushed here 
0d485486a42a9 Update Version 
...... 
06ad9e4fc5f64 savepoint 
1462e57657434 Initial Commit 

И я хотел бы иметь

29a94be3d2d4f Added some feature 
240e1ce8893e9 Add ignore rule 
6238e3b775027 Fixed Something 
0d485486a42a9 Update Version 
1462e57657434 Initial Commit 

Есть ли способ, чтобы сценарий этого, так что я могу сказать:

git squash -commits-with-log="savepoint" ~FROM_INITIAL_COMMIT

+2

Что делает ваш '<< Пуше d здесь обозначение? Если вы переместили их на какой-либо удаленный сервер или иным образом опубликовали их, любые изменения, которые вы делаете на или до этих точек, потребуют, чтобы кто-либо, кто * использовал * эти опубликованные коммиты, * также * принял меры. Если все в порядке, вы можете переконфигурировать в сквош; если нет, вы не можете. – torek

+0

Это напоминает мне http://stackoverflow.com/a/2302947/6309, но это не совсем верно в вашем случае. – VonC

ответ

0

Обновление: кажется, что трюк находится в GIT_SEQUENCE_EDITOR переменная

+0

Чтобы расширить это, [здесь] (https://stackoverflow.com/a/46403701/5037965) - это длинный ответ, который использует 'GIT_SEQUENCE_EDITOR' для автоматизации использования' git rebase -i' для раздачи подобных коммитов. –

Смежные вопросы