2011-12-20 1 views
3

Я хотел бы сделать следующее в скрипте:Accept по умолчанию мерзавец сообщения фиксации после раздавленного слияния

git merge --squash someBranch 
git push 

Проблема заключается в том, что слияние не делает коммит. Поэтому перед толчком я должен совершить. Сообщение о фиксации по умолчанию, созданное этим слиянием, является достаточным. Итак, мои вопросы:

  1. Могу ли я выполнить слияние с автоматическим генерированием коммита?

  2. Или можно добавить команду в скрипт для совершения коммита, который принимает сообщение по умолчанию?

Спасибо!

+0

Могу ли я спросить, почему вы считаете, что по умолчанию достаточно? Разве это не единственная причина для создания сквоша, что вы хотите сделать кучу коммитов из ветки, как одну фиксацию? Если исходные сообщения фиксации имеют смысл, они, вероятно, описывают исходные коммиты. В этом случае вы, вероятно, захотите переустановить эти коммиты вместо раздавливания. – morten

+0

Через 5 лет я не могу вспомнить причину этого .. –

+0

Хе-хе, понятно. Спасибо за ответ в любом случае :) – morten

ответ

5

По умолчанию сообщения фиксации после слияния в .git/MERGE_MSG, так что вы можете сделать следующее:

git commit -F .git/MERGE_MSG 

... после слияния.

+3

Спасибо! Но в моем специальном случае мне пришлось использовать '.git/SQUASH_MSG'. –

4

Похоже, что в более современных версиях git вы можете использовать опцию --no-edit, как описано в разделе git-merge docs и в этом SO question.

git merge --no-edit --squash someBranch 
git push 
0

Другой способ:

git merge --squash someBranch 
git commit -m "" 

Опция --no-edit не работает для меня (Git 2.7.0). В нем говорится: Squash commit -- not updating HEAD.

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