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