Respostas:
Raramente há um bom motivo para fazer isso, mas o parâmetro é --allow-empty
para confirmações vazias (nenhum arquivo foi alterado), ao contrário --allow-empty-message
das mensagens de confirmação vazias. Você também pode ler mais digitando git help commit
ou visitando a documentação online .
Enquanto o objeto da árvore (que possui um hash próprio) será idêntico, o commit terá um hash diferente, pois provavelmente terá um carimbo de data e hora e mensagem diferentes e definitivamente terá um commit pai diferente. Todos esses três fatores são integrados ao git
algoritmo de hash do objeto.
Não são algumas razões que você pode querer um vazio commit (incorporando alguns dos comentários):
git
comandos sem gerar alterações arbitrárias (via Vaelus ).gitolite
(via Tatsh ).Outras estratégias para adicionar metadados a uma árvore de consolidação incluem:
git notes
para associar uma nota mutável em cima de uma confirmação imutável existente.commit --amend
se o controle remoto não permitir o envio forçado. Dessa forma, você pode permitir que os desenvolvedores vejam uma mensagem importante que acompanha o commit anterior.
Se você estiver usando um sistema como o gitversion, faz muito sentido fazer esse tipo de confirmação. Você pode ter um commit específico para aumentar a versão principal usando um comentário + semver: major.
Talvez como uma alternativa mais sensata, você possa criar uma tag anotada (uma confirmação nomeada com uma mensagem). Veja a git tag -a
opção
dev
formulário de ramificaçãomaster
e, em seguidafeat
, imediatamente uma ramificaçãodev
, afeat
ramificação parece vir damaster
ramificação, pois não há confirmação distinta nadev
ramificação da qual afeat
ramificação vem. Uma confirmação vazia quando vocêdev
cria adev
ramificação pela primeira vez ajuda a estabelecer a ramificação como sua ramificação indefinidamente duradoura e independentemaster
. Geralmente é útil quando você usa ramificações como camadas e cria duas camadas a partir de uma única confirmação.