Подтвердить что ты не робот

Как передать сообщение только GIT?

Предположим, что я работал над филиалом и выполнял свою работу, но хочу добавьте сообщение в журналы того, что будет дальше в списке задач для ветки. раз Возможно, я захочу сделать это:

  • Переключение ветвей на работу над чем-то еще - нужно напомнить себе, что делать дальше
  • Выходные
  • Другое

Можно ли зафиксировать git без каких-либо файлов? Любой способ сказать это: возможно ли передать сообщение только GIT?

4b9b3361

Ответ 1

Да. Возможно. Я никогда не запомню, как это сделать и всегда нужно Google (так что я пишу Q/A в надежде, что это поможет мне запомнить).

Команда:

git commit --allow-empty

Документ для --allow-empty читает:

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

Док имеет смысл, но его нелегко искать.

Ответ 2

Вместо этого вы можете также использовать аннотированный тег. Затем вы можете удалить тег позже, не переписывая историю. Для меня это имеет больше смысла, чем добавление пустых записей в вашу историю.

git tag -a TODO-feature-foo -m "next I'm going to..."
git push origin :TODO-feature-foo

Как только это не понадобится:

git push origin :TODO-feature-foo

Ответ 3

Примечание: если вы поэтапно изменили, но хотите создать пустую фиксацию только с сообщением, вам нужно (с Git 2.12, Q1 2017):

git commit --only --allow-empty -m "my message"

См. commit beb635c (09 декабря 2016 г.) и commit 319d835 (02 декабря 2016 г.) Андреас Крей (apk). (слияние Junio ​​C Hamano - gitster - в совершить 3aead1c, 19 декабря 2016 года)

commit: make --only --allow-empty работа без путей

--only подразумевается при наличии путей и требуется их, если --amend.
Но с --allow-empty он также должен быть разрешен - это единственный способ создать пустую фиксацию в присутствии поэтапных изменений.