Я отделился от мастера, чтобы создать функцию для нашего веб-сайта, теперь у ветви есть, возможно, 1000 коммитов, и я не хочу сливать это в мастера. Я хотел бы взять HEAD
ветки и в основном удалить все остальные коммиты.Сквош все фиксируется в одном
Я попытался сделать rebase
, но это, похоже, не сработало, поскольку оно все еще показывает, что 1k (ish) совершает.
git rebase -i dev-dashboard
Я тогда хотел раздавить все фиксации и сделать HEAD
только совершить, а затем объединить, что в мастер. Как это может быть сделано?
Это походит дубликата http://stackoverflow.com/a/5201642/1256452 - но подумайте, действительно ли вы этого хотите, поскольку слияние одного сжатого фиксации, слияние 1000 коммитов, точно такое же, как и git. Единственное реальное различие заключается в том, имеет ли полученное слияние 1000 коммитов на входящей ветке, или только на последнюю. (То же самое происходит для слияния, потому что merge просто смотрит на начало и конец, игнорируя все промежуточные коммиты.) – torek
Итак, если у хозяина 5 коммитов, а у меня 1000, то когда он объединен, мастер теперь покажет 6 коммитов вместо 1006? –
Обязательства не обязательно линейны. Если вы сквош сначала, а затем слейте, то «master» будет иметь * 7 *, 6 на «прямой линии» ABCDEM и один на «ветке» A - (вниз) F - (вверх) M (не считая A снова, так как он «вверх»). Если вы не сквош, у вас будет то же самое 6, но 1000 на «вниз». (Я не могу нарисовать их как график в комментарии ...) Обратите внимание, что 'git log' следует по обеим ветвям« одновременно »по умолчанию; '- first-parent' говорит ему игнорировать« входящие »ветви. – torek