Как изменить коммит без изменения сообщения коммита (повторное использование предыдущего)?

Есть ли способ изменить коммит без vi (или ваш $EDITOR) появляется возможность изменить сообщение о коммите, но просто повторно использовать предыдущее сообщение?

8 ответов

Решение

Начиная с версии git 1.7.9 вы также можете использовать git commit --amend --no-edit чтобы получить свой результат.

Обратите внимание, что это не будет включать метаданные из другого коммита, такие как временная метка, которая может иметь или не иметь важного значения для вас.

git commit -C HEAD --amend будет делать то, что вы хотите. Опция -C берет метаданные из другого коммита.

Другая (глупая) возможность состоит в том, чтобы git commit --amend <<< :wq если у вас есть vi(m) как $EDITOR,

Чтобы расширить принятый ответ, вы также можете сделать:

git commit --amend --no-edit -a

добавить в настоящее время измененные файлы.

Использование принятого ответа для создания псевдонима

 oops = "!f(){ \
    git add -A; \
    if [ \"$1\" == '' ]; then \
        git commit --amend --no-edit; \
    else \
        git commit --amend \"$@\"; \
    fi;\
}; f"

тогда вы можете сделать

git oops

и он добавит все, и изменить, используя то же сообщение

или же

git oops -m "new message"

изменить замену сообщения

Просто для большей ясности вам нужно выполнить изменения с git add, затем измените последнюю фиксацию:

git add /path/to/modified/files
git commit --amend --no-edit

Это особенно полезно, когда вы забыли некоторые изменения в последней фиксации или когда вы хотите добавить больше изменений без создания новых коммитов, повторно используя последнюю фиксацию.

Я вижу, что на вопрос уже дан ответ, но если вы хотите добавлять, фиксировать и отправлять как эффективная машина, вы можете сложить все команды вместе и сделать это в одной строке.

      git add .; git commit --amend --no-edit; git push --force

Теперь, когда вы вносите только небольшие изменения в каждом коммите, вы можете просто нажатьUPи сделать все это за один раз.

надеюсь, это кому-то поможет :)

Примечание. Это не простой способ работы с git, и я бы рекомендовал его только в том случае, если вы часто вносите небольшие изменения. Например, всегдаaddingс.(все изменения) могут привести к тому, что вы внесете изменения, которые вы даже не хотите добавлять, что может привести к беспорядку.commit.

Изменить: вам нужно будет добавить--forceк вашей команде push, если коммит, который вы хотите изменить, уже находится в удаленном репозитории

Полное руководство для чайников

Как только вы закончите свои изменения в коде.

1.- git statusзарегестрироватьсяterminalперемены;

2.- Сохраните изменения, используяgit add .илиgit add /your.file/чтобы сделать это файл за файлом, использование предыдущей команды поможет вам в этом последнем варианте;

3.- После того, как ваши изменения были подготовлены, вы можете использоватьgit commit --amend --no-edit. Это добавит ваши последние изменения в ваш последний коммит без редактирования сообщения.

4.- Наконец, если вы не нажали свой предыдущий коммит, просто сделайтеgit pushилиgit push origin/yourBranch.
Если вы уже нажали свой последний коммит, используйтеgit push -fилиgit push -f origin/yourBranch.

Другие вопросы по тегам