Я не являюсь и никогда не буду экспертом git
, поэтому будьте добры.
У меня есть пиар-ветка, в которой, как мне говорит Гитхуб, скажем, 12 коммитов.
Пока я работал над этим пиаром, я несколько раз сливал master
(ветку, из которой он изначально расходился). Я планирую уничтожить все коммиты до одного, прежде чем этот PR будет принят и объединен.
Я знаю, что собираюсь использовать git rebase -i
для этого. Общая область этого вопроса - как найти аргумент для этой команды.
Учитывая слияния из master
в мою PR-ветку и т. Д. И т. Д., git merge-base
не дает мне, я думаю, правильного SHA для предоставления в качестве аргумента git rebase -i
. Фактически, это даст мне самый последний коммит, который «пришел» с master
, вместо самого раннего момента, когда моя ветвь «началась».
Я, конечно, прочитал этот отличный ответ . Его ответ на «магию раковины» работает, но я не до конца понимаю, и мне не нравится полагаться на магию, я не понимаю.
Поэтому мой вопрос: из моей PR-ветви могу ли я вместо этого использовать эту сравнительно простую команду: git rebase -i HEAD~12
, где 12
- это то, что Github говорит мне, это количество коммитов на моей ветке?
(конечно, я предполагаю, что я push
отредактировал свою локальную ветвь для своей origin
, т.е. моя локальная ветвь на моем ноутбуке идентична моей origin
, размещенной на Github-хосте. В этом предположении подразумевается, что если Github сообщает 12 коммитов, то моя ветвь на моем ноутбуке также должна иметь ровно 12 коммитов.)
Это количество коммитов в порядке после тильды (~
)? Это надежная, относительно легкая для ума вещь, которую можно сделать? Или я споткнусь о еще одном непостижимом git
варианте или соглашении?