
1. Исправляем сообщение коммита, который еще не был отправлен.
Если мы видим, что сообщение коммита содержит ошибку, это легко исправить командой git commit --amend -m "Сообщение без ошибок"
2. Добавляем файлы в коммит перед пушем.
Если git status показывает что у нас остались файлы, не добавленные в коммит, но имеющий изменения, мы можем добавить их командой git add -a
3. Убираем файлы из коммита перед пушем.
Если в наш коммит пробрались файлы, которые мы не хотим пушить в ориджин, их можно убрать из коммита командой git reset HEAD <yourfilename>
Как это работает. HEAD — это указатель на текущий бранч и хэш коммита, когда вы выполняем команду git reset HEAD мы восстанавливаем состояние бранча до того, когда этого файла не было в коммите.
4. Убираем изменения из коммита перед пушем.
Если вдруг перед пушем Вам пришла в голову замечательная идея проверить изменения в коммите с помощью git diff и вы увидели, что в коммите есть изменения, которые не должны попасть в ориджин, вы можете убрать их из коммита. Для этого мы смотрим состояние нашего бранча с помощью git log —oneline (мы ведь не хотим простыню с логами на весь экран) и видим, что можем поменять состояние бранча до желаемого с помощью git reset HEAD~1 (или к конкретному состоянию по хэш коду, например git reset <hashcode>.
5. git reset —soft —mixed —hard.
Основная разница между этими коммандами заключается в следующем:
--soft — возвращает изменения из коммита в состояние стейджа.
--mixed — возвращает изменения из коммита, а так же убиирает файл из стейджа.
--hard — не только возвращает изменения из коммита, но и отменяет сделанные изменения. Используйте эту команду с осторожностью.
6. Восстанавливаем изменения, сделанные с помощью git reset —hard.
Если мы внезапно поняли, что только что удаленные изменения нам нужны, можно использовать команду git reflog, которая покажет хэш коммита предыдущего коммита, к которому мы хотим вернуть состояние и вызовем команду git reset --hard <hashcode>.
7. Отменяем коммит, который уже был запушен.
Если мы хотим изменить файлы, затронутые коммитом, который уже был запушен в ориджин, мы не можем использовать git reset, потому что это перепише историю и вызовет конфликты у пользователей, которые уже получили наш коммит.
Для отменя коммита мы можем использовать команду git revert <commithashcode>. Далее мы увидим в консоли сообщение об изменении коммита, нажимаем esq для выхода из Vim и отправляем новый коммит в ориджин.
8. Копируем коммит из одного бранча в другой.
Для начала скопируем хэш код коммита, который мы хотим скопировать в другой бранч и делаем чекаут на ветку, в котору хотим добавить желаемый коммит. После этого воспользуемся командой git cherry-pick <hashcode>. Если потом мы введем git log --oneline, то увидим, что нужный коммит появился и в другом бранче.

Оставьте комментарий