¿Cómo puedo crear un nuevo commit
y crear un nuevo mensaje si no se realizan cambios en los archivos?¿Cómo confirmar ningún cambio y nuevo mensaje?
¿Esto no es posible ya que el código de confirmación (SHA?) Será el mismo?
¿Cómo puedo crear un nuevo commit
y crear un nuevo mensaje si no se realizan cambios en los archivos?¿Cómo confirmar ningún cambio y nuevo mensaje?
¿Esto no es posible ya que el código de confirmación (SHA?) Será el mismo?
Raramente hay una buena razón para hacer esto, pero el parámetro es --allow-empty
para confirmaciones vacías, en contraste con --allow-empty-message
para mensajes vacíos. También puede leer más escribiendo git help commit
o visitando the online documentation.
Mientras que el objeto de árbol (que tiene un hash propio) será idéntico, la confirmación tendrá un hash diferente, porque presumiblemente tendrá una marca de tiempo y un mensaje diferentes, y definitivamente tendrá una confirmación principal diferente. Estos tres factores están integrados en el algoritmo hash de objetos git
.
Hay son algunas de las razones es posible que desee cometer un vacío (que incorpora algunos de los comentarios):
git
comandos sin generar cambios arbitrarios (a través de Vaelus).gitolite
(a través de Tatsh).Otras estrategias para añadir metadatos a un árbol cometer incluyen:
git notes
para asociar una nota mutable sobre una confirmación inmutable existente.Empecé a seguir el flujo de git [modelo de rama] (http://nvie.com/posts/a-successful-git-branching-model/). Cuando haces una rama 'dev' de' master' y luego una rama 'feat' inmediatamente de' dev', la rama 'feat' parece venir de la rama' master' ya que no hay commit distintivo en 'dev' rama de la cual proviene la rama 'hazaña '. Un commit vacío cuando primero haces la rama 'dev' ayuda a establecer la rama' dev' ya que es una rama indefinidamente duradera independiente de 'master'. En general, es útil cuando utiliza ramas como capas y crea dos capas a partir de una sola confirmación –
Otra razón: si omite algo importante fuera de su mensaje de confirmación antes de presionar, no puede hacer 'commit --amend' si el control remoto no lo hace permitir empujar la fuerza. De esta forma, puede permitir que los desarrolladores vean un mensaje importante relacionado con la confirmación anterior. –
Quiero hacer esto porque presioné una confirmación, pero olvidé mencionar algo en el mensaje de confirmación. Nuestros mensajes de compromiso están integrados con el seguimiento de problemas y el software de integración continua, y los contenidos del mensaje de confirmación afectan esas aplicaciones. ¿Hay una mejor manera? Esta parece ser la mejor solución en mi caso. Lo único que puedo imaginar sería de alguna manera poder revertir la confirmación anterior. – sytech
Si te entendí bien, quieres hacer una confirmación vacía. En ese caso es necesario:
git commit --allow-empty
Tal vez como una alternativa más sensata, puede crear una etiqueta anotado (un llamado comprometerse con un mensaje). Vea la opción git tag -a
.
Si está utilizando un sistema como gitversion Tiene mucho sentido hacer este tipo de confirmación. Podría tener un compromiso que sea específicamente para golpear la versión principal con un + semver: comentario principal.
vacío se comprometen con un mensaje
git commit --allow-empty -m "Empty test commit"
vacío se comprometen con un mensaje vacío
git commit --allow-empty --allow-empty-message
Más para las notas que para el propio código. –
En lugar de hacer lo que está preguntando, use 'git notes' en su lugar. – wjl
@iight Si no ha llevado su código a ninguna parte, también considere 'git commit --amend'. Esto lo llevará de vuelta a la pantalla de confirmación, donde puede editar su mensaje y agregar archivos adicionales a la confirmación si los ha organizado. Tenga en cuenta que, como una rebase, esto hará que su compromiso original sea obsoleto y puede causar un desagradable dolor de cabeza de fusión para cualquiera que basó su código en su compromiso anterior. –