- Да. 2. Да.
Причина, по которой это происходит, заключается в том, что если какой-то другой пользователь извлечет коммит 1, он будет иметь большой файл в своей локальной файловой системе, поэтому он должен существовать в истории.
Сброс до коммита до его решения или, если вы уже сделали дальнейшие коммиты и не хотите потом их забирать, вы можете просто интерактивно перебазировать, и squa sh коммит 1 и 2 вместе. В вашем случае сброс, вероятно, является самым простым, но ребаз может быть более чистым, если бы не был зафиксирован возвратный коммит, скажем, это был коммит 5. Во время интерактивного ребазирования вы можете изменить порядок коммита 5, чтобы он произошел сразу после коммита 1, и squa sh это в коммит 1 (или 1 и 5 в предыдущий коммит). Как обычно в Git, есть много способов снять кожу с этой кошки.