Git rebase Сквош фиксирует хэш - PullRequest
0 голосов
/ 11 июня 2018

У меня есть ветка с 10 коммитами.3 из них - это слияния коммитов слияния мастера с моей веткой и добавление ~ 500 коммитов между ними каждый раз.Есть ли способ сдавить коммиты, которые были сделаны на текущей ветке в одном?моя история выглядит примерно так:

ad54ef86 My Commit 1
ad54ef86 Merge commit
ad54ef86 Others' Commits
....500 more others' commits
ad54ef86 My Commit 2
ad54ef86 My Commit 3
ad54ef86 Merge commit
ad54ef86 Others' Commits
....500 more others' commits
ad54ef86 My Commit 4
...

Сейчас я делаю git rebase -i HEAD~2000, а поиск - это большая работа.Есть ли способ обойти это?

РЕДАКТИРОВАТЬ : Таким образом, этот вопрос помечается как дубликат Squashing последних n коммитов вместе.Это явно не моя проблема.Я хочу раздавить последние n коммитов, сделанные ТОЛЬКО в моей текущей ветке ПОСЛЕ того, как я объединю другую ветку в этой ветке и получу все эти коммиты в пути.

1 Ответ

0 голосов
/ 11 июня 2018

Во-первых, я бы спросил, какова цель вашего ребеаз?Вы хотите в конечном итоге выдвинуть свои коммиты на пульт?Или вы просто хотите, чтобы ваши коммиты были на вершине и просто продолжали работать локально?В любом случае я предлагаю вам предпринять следующие шаги:

  1. создать новую ветку, начиная с вашей удаленной главной ветки.Это позволит вам получить все коммиты от удаленного мастера.
  2. Переключитесь на новую ветку.
  3. Начните выбирать свои коммиты из старой ветки, которую вы описали.Это поможет узнать хеши ваших коммитов.Это получит все коммиты от мастера под ваши коммиты.Обратите внимание, что хэши ваших коммитов в новой ветке будут переписаны.
  4. При необходимости вы можете теперь раздавить и передать свои коммиты на пульт.

Не забудьте выполнить выборку и перебазирование в следующий раз, когда вам нужно будет выполнить синхронизацию с пультом.

...