Есть ли способ автоматически добавлять все комментарии коммита из раздавленных mybranch
коммитов при выполнении
git merge --squash mybranch
чтобы один коммит содержал конкатенацию всех комментариев коммита из mybranch
Есть ли способ автоматически добавлять все комментарии коммита из раздавленных mybranch
коммитов при выполнении
git merge --squash mybranch
чтобы один коммит содержал конкатенацию всех комментариев коммита из mybranch
Я думаю, что "git merge --squash" делает это автоматически! Просто сделайте коммит с помощью «git commit --no-edit», и я думаю, что вы получите именно это. Я вижу все сообщения фиксации внутри .git/SQUASH_MSG сразу после запуска команды «git merge --squash». Ты?
Лично я захожу в мастер, но затем принудительно отправляю результат обратно в мою ветку темы. Таким образом, мой окончательный коммит можно будет просмотреть с помощью запроса на включение.
Живой пример (попробуйте эти точные команды, это использует мой демонстрационный сервер и действительно работает):
git clone http://vm.bit-booster.com/bitbucket/scm/bb/rebase-example-2.git
cd rebase-example-2
git checkout branch
git reset --hard origin/master
git merge --squash origin/branch
git commit --no-edit
git show
commit 74656c51212526af49382c985419244737141217
Author: G. Sylvie Davies <[email protected]>
Date: Mon Dec 26 22:07:50 2016 -0800
Squashed commit of the following:
commit 3120cbba4e94e0a81eed2f9ff42e7012cca996bf
Author: G. Sylvie Davies <[email protected]>
Date: Thu Dec 15 18:24:02 2016 -0800
b2
commit ccb522334464879b8f39824031c997b57303475d
Merge: 6b85efb 026bf0c
Author: G. Sylvie Davies <[email protected]>
Date: Thu Dec 15 18:13:35 2016 -0800
m
commit 6b85efbddbb74d49a096bfc54fd4df15e261b72f
Author: G. Sylvie Davies <[email protected]>
Date: Thu Dec 15 18:12:51 2016 -0800
b1
На этом этапе я рекомендую выполнить «git push --force-with-lease», чтобы получить этот раздавленный коммит в вашей удаленной тематической ветке, готовой для проверки кода.
Примечание. В примере я делаю одну необычную вещь. На самом деле я захожу в источник/мастер, а не на локальный мастер, и сначала делаю «ветку git checkout» и «git reset --hard origin/master». Это держит моего местного хозяина невозмутимым из-за этой операции, так что все, над чем я там работаю, остается в покое.
Я на Git 2.7.4. Может быть, старые мерзавцы ведут себя по-другому, я не знаю.
Если вы хотите сделать все это в веб-интерфейсе и используете Atlassian Bitbucket Server (локальную версию), вы можете установить мой Bit-Booster, платное дополнение, и нажмите большую кнопку "Сквош", которая помещает запросы на включение. Он делает то же самое, за исключением того, что конкатенируются только сообщения фиксации без слияния.
git merge --squash
, но только что протестировал его в Git 2.10.1, и там он работает так же.
- person torek; 27.12.2016
--no-edit
был тем, что я искал. К сожалению, эта опция недоступна из фиксации в SourceTree, поэтому ее необходимо сделать в командной строке. Когда это делается из командной строки, нет ли возможности редактировать объединенные комментарии перед фиксацией? Ах, я попробовал TortoiseGit, и его коммит по умолчанию объединяет все комментарии и позволяет их редактировать перед фиксацией результата. Я использую Git 2.10.1.windows.1
- person JonN; 27.12.2016