Я могу повторно основывать и раздавить фиксации одновременно?

Когда у меня есть фиксация для разнообразия, которая была несколькими фиксациями ранее, я всегда волную рабочую переоснову дважды подряд. Действительно ли возможно сделать этот рабочий процесс все на одном шаге? Скажем, у меня есть 4 новых фиксации.

* (master) D
* C
* B
* A
* Base

Я нахожу ошибку в B, таким образом, я создаю ответвление и фиксирую его.

* (master) D
* C
| * (fix) Fix.
|/  
* B
* A
* Base

Затем я работаю git rebase --onto fix B D перемещать C и D на B.

* (master) D'
* C'
* (fix) Fix.
* B
* A
* Base

Наконец я работаю git rebase --i fix^^ для наблюдения последних нескольких фиксаций и я давлю B и Фиксирую в единственную фиксацию.

* (master) D'
* C'
* B'
* A
* Base

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

9
задан Craig P. Motlin 15 July 2010 в 15:51
поделиться

1 ответ

Известно ли вам о параметре - squash для git merge ?

- squash

Создание рабочего дерева и индекса состояние, как если бы произошло настоящее слияние (за исключением информации о слиянии), но на самом деле не совершайте фиксацию или не перемещайте HEAD , ни запись $ GIT_DIR / MERGE_HEAD , чтобы вызвать следующий git commit, чтобы создать коммит слияния. Это позволяет вам создать одну фиксацию поверх текущей ветки, эффект которой такой же, как и слияние другой ветки (или больше в случае осьминога).

3
ответ дан 4 December 2019 в 22:26
поделиться
Другие вопросы по тегам:

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