¿Cambiar root commit en git?
Hay formas de cambiar el mensaje de confirmaciones posteriores:
git git-rebase git-commit git-rewrite-history enmendar
Suponiendo que tenga un árbol de trabajo limpio, puede hacer lo siguiente.
243
Para expandir la respuesta de ecdpalma , ahora puede usar la --root
para decirle a la rebase
qué desea sobrescribir la raíz / primer confirmación:
git rebase --interactive --root
Luego, la solución raíz aparecerá en la lista de TODO reinstalar, y puede elegir editar o reimprimir:
reword <root commit sha> <original message> pick <other commit sha> <message> ...
Esta explicación es --root
en los documentos de Git Rebase (mi énfasis):
Restaure todas las confirmaciones disponibles desde
<branch>
lugar de limitarlas a<upstream>
. Esto le permite restablecer el bloqueo de raíz en una rama .
Si simplemente crea un repositorio y descubre de antemano que en el futuro está remolcando sobre la "primera" fijación, puede evitar este problema por completo haciendo una solución vacía al principio:
git commit --allow-empty -m "Initial commit"
y solo después de eso comienzan a hacer fijaciones "reales". Luego, puede volver a instalarlo fácilmente sobre este método estándar fijo, por ejemplo git rebase -i HEAD^
Puedes usar git filter-branch
:
cd test git init touch initial git add -A git commit -m "Initial commit" touch a git add -A git commit -m "a" touch b git add -A git commit -m "b" git log --> 8e6b49e... b 945e92a... a 72fc158... Initial commit git filter-branch --msg-filter \ "sed \"s|^Initial commit|New initial commit|g\"" -- --all git log --> c5988ea... b e0331fd... a 51995f1... New initial commit
Otras preguntas sobre las etiquetas git git -rebase git-commit git-rewrite-history corrija o haga una pregunta