Ответы:
Для этого редко есть веская причина, но параметр предназначен --allow-empty
для пустых коммитов (файлы не изменяются), в отличие от --allow-empty-message
пустых сообщений о фиксации. Вы также можете узнать больше, набрав git help commit
или посетив онлайн-документацию .
Хотя объект дерева (имеющий собственный хэш) будет идентичным, фиксация фактически будет иметь другой хеш, потому что предположительно будет иметь другую метку времени и сообщение, и определенно будет иметь другую родительскую фиксацию. Все три фактора интегрированы в git
алгоритм хеширования объектов.
Там являются несколько причин , вы можете совершить пустой ( с учетом некоторых замечаний):
git
команд без генерации произвольных изменений (через Vaelus ).gitolite
(через Tatsh ).Другие стратегии добавления метаданных в дерево фиксации включают:
git notes
чтобы связать изменяемую заметку поверх существующей неизменной фиксации.commit --amend
если удаленный компьютер не разрешает принудительное нажатие. Таким образом, вы можете позволить разработчикам увидеть важное сообщение, связанное с предыдущей фиксацией.
Если вы используете такую систему, как gitversion, имеет смысл делать такого рода фиксацию. У вас может быть коммит, специально предназначенный для изменения основной версии с помощью комментария + semver: major.
Возможно, в качестве более разумной альтернативы вы могли бы создать аннотированный тег (именованный коммит с сообщением). Смотрите git tag -a
вариант.
dev
форму ветки,master
а затемfeat
сразу же ветвьdev
,feat
ветвь выглядит как исходящая изmaster
ветки, так как нет отличительной фиксации вdev
ветке, из которойfeat
происходит ветка. Пустая фиксация при первом созданииdev
ветки помогает установитьdev
ветвь как собственную бессрочно существующую ветвь, независимую отmaster
. Обычно это полезно, когда вы используете ветки как слои и создаете два слоя из одного коммита