Git commit без сообщения коммита - PullRequest
94 голосов
/ 02 июня 2011

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

Ответы [ 9 ]

120 голосов
/ 02 июня 2011

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

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

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

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

24 голосов
/ 10 июля 2013

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

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

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

16 голосов
/ 08 апреля 2014

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

git commit -am'.'

или короче:

git commit -am.
10 голосов
/ 28 июня 2013

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

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

См. commit 25206778aac776fc6cc4887653fdae476c7a9b5a :

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


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

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

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

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

Вам не нужен 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».

1 голос
/ 13 марта 2014

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

git commit -am'save'

Вот и все, вы будете обходить сообщения git commit.

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

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

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

1 голос
/ 02 июня 2011

Git требует коммита, чтобы иметь комментарий, иначе он не примет коммит.

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

0 голосов
/ 13 июня 2019

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

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

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

git auto
git push

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

0 голосов
/ 24 мая 2013

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

git commit -a -m 'asdfasdfadsfsdf'
...