Как мне получить:
master: A - B - C - D -------------- F - G - H
\ / \
feature: A' - B' - C' D' - F' - G'
до:
master: A - B - C - D -------------- F - G - H
\ / \
feature: A' - B' - C' D' - F' - G'
? В основном удаляя историю A'-C'-F, делая ребаз D'-G 'с F на H, затем добавляя его обратно. Это было бы ТАК ПОЛЕЗНО.
Вот более подробная информация о том, почему я этого хочу. Я использую ветку функций, когда я работаю.
Мой рабочий процесс:
master: A - B - C - D
\
feature: A' - B' - C'
Когда я закончу свою функцию, я делаю git rebase master
, затем либо git rebase -i master
, либо от мастера git merge --squash feature
, а затем отправляю его мастеру как один хороший коммит.
Я получаю:
master: A - B - C - D - F
\
feature: A' - B' - C'
Где F - это просто A ', B' и C ', сжатые вместе.
Все хорошо. Но затем я хочу продолжить работу над той же веткой функций. Я не понял, как это сделать. Я мог бы сделать:
feature2: D' - E' - F'
/
master: A - B - C - D - F
\
feature(archive): A' - B' - C'
Что раздражает. Выполнение слияния --squash с последующим слиянием мастера и функции даст:
master: A - B - C - D -------------- F - G - H
\ / \
feature: A' - B' - C' D' - F' - G'
Помогите мне добраться до этого:
master: A - B - C - D -------------- F - G - H
\ / \
feature: A' - B' - C' D' - F' - G'
Итак, я мог бы подтолкнуть к мастеру, как:
master: A - B - C - D -------------- F - G - H ------------ I
\ / \ /
feature: A' - B' - C' D' - F' - G'
и повторите цикл.
Последняя цифра, для комментария.
master: A - B - C - D -------------- merge - F - G - H
\ / \
feature: A' - B' - C' ---- merge - D' - F' - G'`