Git фиксация без сообщения фиксации

Как я могу совершать изменения без указания сообщения commit? Почему это требуется по умолчанию?

Ответ 1

git обычно требуется непустое сообщение, потому что предоставление значимого сообщения о фиксации является частью хорошей практики разработки и хорошего управления репозиторией. Первая строка сообщения фиксации используется повсюду внутри git; для более, прочитайте "Примечание о Git Commit Messages" .

Если вы откроете Terminal.app, cd в каталог вашего проекта и git commit -am '', вы увидите, что он завершился неудачно, потому что пустое сообщение фиксации не разрешено. Более новые версии Git имеют --allow-empty-message аргумент командной строки, включая версию Git, включенную в последнюю версию Xcode. Это позволит вам использовать эту команду для совершения фиксации с пустым сообщением:

git commit -a --allow-empty-message -m ''

До флага --allow-empty-message вам нужно было использовать команду commit-tree plumbing. Вы можете увидеть пример использования этой команды в разделе "Raw Git Git.

Ответ 2

И если вы добавите псевдоним для него, тогда это будет лучше?

git config --global alias.nccommit 'commit -a --allow-empty-message -m ""'

Теперь вы просто делаете nccommit, nc из-за отсутствия комментариев, и все должно быть выполнено.

Ответ 3

При работе с важным обновлением кода, если вам действительно нужен промежуточный safepoint, вы можете просто сделать:

git commit -am'.'

или короче:

git commit -am.

Ответ 4

Примечание: начиная с git1.8.3.2 (июль 2013 г.), следующая команда (упомянутая выше Джереми Шерманом) больше не будет открывать редактор:

git commit --allow-empty-message -m ''

См. Commit 25206778aac776fc6cc4887653fdae476c7a9b5a:

Если пустое сообщение указано с опцией -m git commit, тогда редактор запускается.
Это неожиданно и ненужно.
Вместо того, чтобы использовать длину строки сообщения для проверки, указала ли она пользователя, сразу запомните, была ли -m опция -m.


В git 2.9 (июнь 2016 г.) улучшено поведение пустых сообщений:

См. Коммит 178e814 (06 апреля 2016 г.) Адама Динвуди (me-and).
Смотрите коммит 27014cb (07 апреля 2016 г.) Джеффа Кинга (peff).
(Объединено Junio C Hamano - gitster - в коммите 0709261, 22 апреля 2016 г.)

commit: не игнорировать пустое сообщение, данное -m ''

  • " git commit --amend -m '' --allow-empty-message ", даже если это выглядит странно, является действительным запросом на исправление коммита, чтобы вообще не иметь сообщения.
    Из-за неправильного определения присутствия -m в командной строке мы в итоге сохранили сообщение журнала от первоначального коммита.
  • " git commit -m "$msg" -F file " должен быть отклонен, независимо от того, является ли $msg пустой строкой или нет, но из-за той же ошибки не был отклонен, когда $msg пуст.
  • " git -c template=file -m "$msg" " должен игнорировать шаблон, даже если $msg пуст, но вместо этого он использовал содержимое файла шаблона.

Ответ 5

Для этого вам не нужно git. Творческое использование функции bash сделает трюк просто прекрасным. Если вам не нужны сообщения, просто установите значение по умолчанию и забудьте об этом.

function gitcom() {
  git commit -m "my default commit message"
}

Если вы были очень предприимчивы, вы могли бы добавить, зафиксировать и нажать одну команду

function gitzap() {
  git add . && git commit -m "whatevs" && git push $1 $2
}

Что вы затем выполняете как

gitzap origin master

Вы можете даже глубже и использовать parse_git_branch, чтобы сэкономить на себе какие-либо нажатия клавиш, или установить общее значение по умолчанию "origin" и "master".

Ответ 6

Git требует коммита для комментария, иначе он не примет фиксацию.

Вы можете настроить шаблон по умолчанию с помощью git в качестве сообщения об ошибке по умолчанию или найти флаг -allow-empty-message в git. Я думаю, что (не на 100% уверен) вы можете перенастроить git, чтобы принять пустые сообщения о фиксации (что не является такой хорошей идеей). Обычно каждая фиксация должна быть частью работы, которая описывается вашим сообщением.

Ответ 7

Я нашел простейшее решение:

git commit -am'save'

В этом случае вы обойдете git сообщение с сообщением.

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

Члены нашей команды всегда пишут эти сообщения, но почти никто не увидит их снова.

Фиксированное сообщение - это материал, убивающий время, по крайней мере, в нашей команде, поэтому мы игнорируем его.

Ответ 8

У меня есть следующий конфиг в моем частном проекте:

git config alias.auto 'commit -a -m "changes made from [device name]"'

Таким образом, когда я спешу, я делаю

git auto
git push

И, по крайней мере, я знаю, с какого устройства был сделан коммит.

Ответ 9

Сообщение о фиксации - это наилучшая практика, которая должна соблюдаться в любое время. Если вы не единственный разработчик и который не скоро изменится.

git commit -a -m 'asdfasdfadsfsdf'