Для объединения двух коммитов в один с сохранением всех изменений, вы можете использовать команду `git rebase -i`.
1. Сначала введите команду `git rebase -i HEAD~2`, где `HEAD~2` означает два предыдущих коммита, которые вы хотите объединить.
2. Откроется редактор с выбором коммитов, которые вы хотите объединить. Замените "pick" на "squash" или "s" для второго коммита (или последующих коммитов), который вы хотите объединить с предыдущим коммитом. Оставьте "pick" для первого коммита.
3. Сохраните и закройте файл, чтобы продолжить процесс.
4. Откроется редактор с комментарием объединенного коммита. Здесь вы можете изменить сообщение коммита, сохранить его и закрыть файл.
5. Git автоматически объединит коммиты и сохранит все изменения в одном коммите.
Чтобы объединить два коммита с разными файлами в один коммит, вы можете выполнить следующие шаги:
1. Создайте новую ветку для сохранения исходных коммитов: `git branch temp`.
2. Переключитесь на предыдущий коммит, который содержит файлы для объединения: `git checkout <предыдущий коммит>`.
3. Скопируйте файлы из второго коммита в рабочий каталог. Вы можете использовать команду `git checkout <второй коммит> -- <имя файла>` для копирования каждого файла.
4. Добавьте изменения в индекс с помощью команды `git add .`.
5. Создайте новый коммит с командой `git commit`, без указания дополнительного сообщения коммита. Git автоматически применит сообщение от первого коммита.
6. При необходимости повторите шаги 3-5 для других файлов, которые вы хотите объединить.
7. Удалите временную ветку: `git branch -D temp`.
Теперь у вас будет один коммит, содержащий все изменения из двух предыдущих коммитов.