{"id":594,"date":"2025-10-24T10:28:48","date_gmt":"2025-10-24T10:28:48","guid":{"rendered":"https:\/\/blogs.ua.es\/jpm33\/?p=594"},"modified":"2025-10-24T10:28:48","modified_gmt":"2025-10-24T10:28:48","slug":"modificar-el-author-de-un-comit-git","status":"publish","type":"post","link":"https:\/\/blogs.ua.es\/jpm33\/2025\/10\/24\/modificar-el-author-de-un-comit-git\/","title":{"rendered":"Modificar el author de un comit (git)"},"content":{"rendered":"\n<p>El problema es conocido, a veces, al hacer un <em>commit<\/em>, se nos olvida configurar bien nuestro usuario o simplemente usamos la cuenta equivocada (si usamos varios login, o servers para git).<\/p>\n\n\n\n<p>Corregir esto en git es muy sencillo, teniendo en cuenta dos escenarios diferentes:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Cambiar el autor del \u00faltimo commit<\/li>\n\n\n\n<li>Cambiar el autor de uno o varios commits m\u00e1s atr\u00e1s del HEAD<\/li>\n<\/ol>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Corregir el autor en el ultimo commit<\/h2>\n\n\n\n<p>Si el error est\u00e1 solo en el commit m\u00e1s reciente, es muy sencillo. Usaremos el comando <em>&#8211;amend<\/em> (modificar):<\/p>\n\n\n\n<code>\n<pre style=\"background-color:AliceBlue\">\ngit <span style=\"color: red\">commit<\/span> --amend --author=<span style=\"color: green\">\"Jose PEREZ MARTINEZ &lt;miemail@midominio.com&gt;\"<\/span>\n<\/pre>\n<\/code>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Nota Importante<\/strong><\/summary>\n<p>Es recomendable incluir el correo electr\u00f3nico junto al nombre, siguiendo el formato <code style=\"background-color:AliceBlue\">\"Nombre Apellido &lt;email&gt;\"<\/code>.<\/p>\n<\/details>\n\n\n\n<p>Una vez hecho esto, ya hemos corregido el autor del \u00faltimo commit, pero, esa cambio est\u00e1 en nuestro repositorio local. Si queremos actualizar este commit en nuestro repositorio remoto y compartir el cambio necesitamos hacer esto:<\/p>\n\n\n\n<code>\n<pre style=\"background-color:AliceBlue\">\ngit <span style=\"color: red\">push<\/span> <span style=\"color: blue\">--force<\/span><\/pre>\n<\/code>\n\n\n\n<h2 class=\"wp-block-heading\">Corregir el autor en uno o varios commits antiguos<\/h2>\n\n\n\n<p>Si necesitas corregir el autor en varios commits que ya est\u00e1n en el historial, la herramienta a usar es <code>git rebase -i<\/code> (rebase interactivo). Este paso es m\u00e1s &#8220;complicado&#8221; que el anterior, porqu\u00e9 implica usar un editor para modificar la metainformaci\u00f3n de los commits e indicarle a git que queremos hacer para cada commit, pero vamos paso a paso.<\/p>\n\n\n\n<p>Lo primero, necesitamos saber qu\u00e9 commit queremos modificar o si son varios en lote, saber cual es el punto de inicio en el historial. Pero, \u00bfqu\u00e9 siginifica saber qu\u00e9 commit es? Pues buscar el identificador que usa git, que se llama c\u00f3digo Hash. Este c\u00f3digo es una cadena alfanum\u00e9rica que tiene un formato m\u00e1s largo y otro m\u00e1s corte y es \u00fanico (puedes leer m\u00e1s en esta entrada: <a href=\"https:\/\/blogs.ua.es\/jpm33\/2025\/10\/23\/git-hash-commit-identificando-commits\/\" data-type=\"post\" data-id=\"736\">Git Hash Commit, identificando commits<\/a>)<\/p>\n\n\n\n<p>Supongamos que has consultado el historial de git y el hash de tu commit base es <strong>70aeebd<\/strong>, entonces ejecutar el siguiente comando:<\/p>\n\n\n\n<code>\n<pre style=\"background-color:AliceBlue\">\ngit <span style=\"color: red\">rebase<\/span> -i -p <span style=\"color: blue\">70aeebd<\/span>\n<\/pre>\n<\/code>\n\n\n\n<p>Se abrir\u00e1 el editor por defecto que tengas configurado en git (si no lo has configurado, pues puede ser vi, vim, emacs, notepad, &#8230;. depende de tu sistema). En mi caso, por ejemplo tendr\u00e1 un pinta como esto:<\/p>\n\n\n\n<code>\n<pre style=\"background-color:WhiteSmoke\">\npick 2231360 some old commit\npick ee2adc2 Adds new feature\n\n\n# Rebase 2cf755d..ee2adc2 onto 2cf755d (9 commands)\n#\n# Commands:\n# p, pick = use commit\n# r, reword = use commit, but edit the commit message\n# e, edit = use commit, but stop for amending\n# s, squash = use commit, but meld into previous commit\n# f, fixup = like \"squash\", but discard this commit's log message\n# x, exec = run command (the rest of the line) using shell\n# d, drop = remove commit\n<\/pre>\n<\/code>\n\n\n\n<p>En el archivo que se abre, ver\u00e1s una l\u00ednea para cada commit que se va a procesar, comenzando con la palabra <strong>pick<\/strong>. Cambia la palabra <strong><s>pick <\/s><\/strong>por <strong>edit <\/strong>(o e) en cada commit al que quieras cambiarle el autor. Guarda y cierra el archivo. Git comenzar\u00e1 el proceso, paus\u00e1ndose en el primer commit marcado.<\/p>\n\n\n\n<p>Cuando git encuentra una linea marcada para editar, para y ejecuta el comando <code>git commit --amend<\/code>. Una vez termine, debemos cerrar la sesi\u00f3n del rebase para continuar y enviar los cambios al servidor, ejecutamos:<\/p>\n\n\n\n<code>\n<pre style=\"background-color:#F0F8FF\">\ngit <span style=\"color: red\">rebase<\/span> <span style=\"color: blue\">--continue<\/span>\n<\/pre>\n<\/code>\n\n\n\n<p>Puede que tengas que repetir este paso alguna vez, seg\u00fan lo que necesite hacer git durante el proceso.<\/p>\n\n\n\n<p>Al finalizar, debes hacer push:<\/p>\n\n\n\n<code>\n<pre style=\"background-color:#F0F8FF\">\ngit <span style=\"color: red\">push<\/span> <span style=\"color: blue\">--force<\/span><\/pre>\n<\/code>\n\n\n\n<p>Con esto habriamos actualizado el autor en los commits que nos es necesario.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">REFERENCIAS<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.atlassian.com\/es\/git\/tutorials\/rewriting-history\/git-rebase\">git rebase (en atlassian.com) [visto en oct 2025]<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>El problema es conocido, a veces, al hacer un commit, se nos olvida configurar bien nuestro usuario o simplemente usamos la cuenta equivocada (si usamos varios login, o servers para git). Corregir esto en git es muy sencillo, teniendo en &hellip; <a href=\"https:\/\/blogs.ua.es\/jpm33\/2025\/10\/24\/modificar-el-author-de-un-comit-git\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3080,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[676],"tags":[],"class_list":["post-594","post","type-post","status-publish","format-standard","hentry","category-sin-categoria"],"_links":{"self":[{"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/posts\/594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/users\/3080"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/comments?post=594"}],"version-history":[{"count":13,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/posts\/594\/revisions"}],"predecessor-version":[{"id":741,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/posts\/594\/revisions\/741"}],"wp:attachment":[{"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/media?parent=594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/categories?post=594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/tags?post=594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}