ℹ️ Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 0.1 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/ |
| Last Crawled | 2026-04-18 20:59:51 (1 day ago) |
| First Indexed | 2025-05-27 01:24:25 (10 months ago) |
| HTTP Status Code | 200 |
| Meta Title | Como Deshacer Commits en Git (Forma Local y Remota) - Parte 1 |
| Meta Description | null |
| Meta Canonical | null |
| Boilerpipe Text | En esta página:
Partes
Deshaciendo Commits
Deshaciendo Localmente Commits para evitar Archivos no deseados
Deshaciendo Localmente Commits con Mensajes de confirmaciĂłn mal escritos
Deshaciendo Localmente Commits para Agregar cambios al Ăşltimo commit
Nota (s)
En la industria actual hay muchos desarrolladores y equipos de trabajo que suelen usar Git y GitHub para gestionar los repositorios de sus proyectos. Git es el sistema de control de versiones (VCS) más popular del mundo actualmente, nos permite hacer un seguimiento de los cambios de archivos basados en texto. Pero a veces como seres humanos podemos cometer errores a la hora de subir cambios a GitHub, en este Post te enseñare como deshacer estos cambios o commits antes de ser enviados, vamos con ello.
Partes
Parte 1
Parte 2
(Final)
Antes de continuar, te invito a leer los siguientes artĂculos para que estĂ©s familiarizado con este tutorial:
Que es Git, como utilizarlo y otros detalles
Conceptos y Técnicas de Git que debes saber antes de unirte a un Equipo de Git – Parte 1
Que son las Ramas (Branches) en Git, como utilizarlas y otros detalles
Como usar la versiĂłn GUI de Git (No Consola GitBash)
Puedes leer más en la
categorĂa Git
Asimismo te invito a escuchar el
Â
Podcast
: “
5 Consejos para ser un Programador más Productivo
” (No son los clásicos consejos técnicos de programación, si no de rutinas y buenos hábitos cotidianos):
Bien ahora continuemos con el Post: Como Deshacer Commits en Git (Forma Local y Remota) – Parte 1.Â
Para este Post haré uso de
este repositorio
el cual pertenece al tutorial llamado
Como Crear un Reloj Digital (Numérico) con JavaScript
.
Bueno ahora pasemos a realizar operaciones en el repositorio.
Deshaciendo Commits
Los commits de Git más fáciles de deshacer son los que aĂşn no han sido enviando a un repositorio remoto como GitHub, Bitbucket, etc. Como usuario propietario, eres libre de hacer cualquier cosa en tu repositorio local. Pero cuando se trata de editar un historial de commits que se envĂan a un repositorio remoto, que por cierto pueden ser usados pĂşblicamente una ves que se encuentran en lĂnea.
Esto significa que estamos poniendo en peligro el trabajo de otros desarrolladores al destruir el historia de git que ya está en uso. Por ello vamos a ver casos de como deshacer commits local y remotamente. En esta primera parte vamos a ver casos de manera local.
Deshaciendo Localmente Commits para evitar Archivos no deseados
Supongamos que estoy a punto de realizar un commit en mi repositorio local, haciendo uso del comando
git add .
o
git add –all
los cuales agregan todos los cambios de archivo al área de preparaciĂłn en el repositorio. A veces podemos olvidar que algunos archivos no están relacionados con ese commit y no deberĂamos de incluirlos.
Por suerte no es demasiado tarde, ya que podemos hacer uso del comando
git reset
agregando el
nombredelarchivo
que no queremos incluir. Por ejemplo si en mi repositorio local en la PC tengo un archivo llamado
test.rar
y ese archivo no forma parte del proyecto y no lo quiero incluir.
1
2
3
4
5
6
7
8
/
reloj
-
numerico
-
javascript
 Â
├──
/
css
 Â
├──
/
js
 Â
├──
index
.
html
 Â
├──
README
.
md
 Â
├──
test
.
rar
// Omitir este Archivo
Puedo hacer los pasos correspondientes para subir cambios a mi repositorio remoto, pero luego de ejecutar el comando
git add .
debo de escribir el comando
git reset test.rar
para no incluir ese archivo y luego continuar con los pasos respectivos para subir los cambios.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Preparo los archivos
git
add
.
// No incluir el archivo test.rar
git
reset
test
.
rar
// Preparar el Commit
git
commit
-
m
"Cambios"
[
main
08c3d2f
]
Cambios
1
file
changed
,
1
insertion
(
+
)
,
1
deletion
(
-
)
// Subir los cambios al repositorio remoto (GitHub)
git
push
Enumerating
objects
:
5
,
done
.
Counting
objects
:
100
%
(
5
/
5
)
,
done
.
Delta
compression
using
up
to
8
threads
Compressing
objects
:
100
%
(
3
/
3
)
,
done
.
Writing
objects
:
100
%
(
3
/
3
)
,
366
bytes
|
366.00
KiB
/
s
,
done
.
Total
3
(
delta
1
)
,
reused
0
(
delta
0
)
,
pack
-
reused
0
remote
:
Resolving
deltas
:
100
%
(
1
/
1
)
,
completed
with
1
local
object
.
To
https
:
//github.com/collectivecloudperu/reloj-numerico-javascript.git
 Â
65006a0..08c3d2f
 Â
main
->
main
Como yo solo hice unos cambios en el archivo
index.html
del proyecto, si voy al repositorio remoto en GitHub, puedo ver que solo hubo cambios en ese archivo y el archivo
test.rar
no se subiĂł.
Bien ahora pasemos a otro caso sobre los mensajes de confirmaciĂłn mal escritos.
Deshaciendo Localmente Commits con Mensajes de confirmaciĂłn mal escritos
Luego de hacer mi Ăşltimo commit en mi repositorio local, puede pasar que escribĂ mal una palabra en mi mensaje de confirmaciĂłn o commit, por ejemplo escribĂ la palabra
“Cabios”
en lugar de la palabra
“Cambios”
, no es demasiado tarde ya que puedo usar el comando
git commit
con la flag o bandera
–amend
, es decir el comando quedarĂa asĂ
git commit –amend -m “Cambios”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Palabra 'Cambios' mal escrita
git
commit
-
m
"Cabios"
[
main
3d88eef
]
Cabios
2
files
changed
,
1
insertion
(
+
)
,
1
deletion
(
-
)
create
mode
100644
test
.
rar
// Palabra 'Cambios' corregida
git
commit
--
amend
-
m
"Cambios"
[
main
663c8d1
]
Cambios
Date
:
Sun
Apr
18
23
:
41
:
21
2021
-
0500
2
files
changed
,
1
insertion
(
+
)
,
1
deletion
(
-
)
create
mode
100644
test
.
rar
Entonces si hago todos los pasos correspondientes para subir los cambios (suponiendo que hice cambios solamente en el archivo
index.html
) al repositorio remoto, puedo ver en GitHub que el texto o palabra
Cambios
aparece correctamente.
Ahora pasemos a ver otro caos referente a cambios al Ăşltimo commit
Deshaciendo Localmente Commits para Agregar cambios al Ăşltimo commit
Supongamos que tenemos un commit que aún no se ha enviado y nos damos cuenta que se necesitan hacer cambios adicionales. Para solucionar esto, primero debemos agregar los archivos modificados al área de preparación mediante el comando
git add
seguido del
nombredelarchivo
.
Por ejemplo tengo un archivo llamado
test.txt
el cual quiero agregar a mi commit a Ăşltimo momento
1
2
3
4
5
6
7
8
/
reloj
-
numerico
-
javascript
 Â
├──
/
css
 Â
├──
/
js
 Â
├──
index
.
html
 Â
├──
README
.
md
 Â
├──
test
.
txt
// Agregue este archivo a ultimo momento
Antes de que el archivo
test.txt
fuese creado yo ejecute el primer comando que sirve para preparar los cambios, es decir el comando
git add .
y luego que agregue el archivo
test.txt
, entonces allĂ debo de ejecutar el comando
git add test.txt
para incluirlo en el commit.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Preparo los archivos
git
add
.
// Agrego el archivo que fue creado a Ăşltimo momento
git
add
test
.
txt
// Preparo el Commit
git
commit
-
m
"Cambios"
[
main
5eb3c4c
]
Cambios
1
file
changed
,
0
insertions
(
+
)
,
0
deletions
(
-
)
create
mode
100644
test
.
txt
// Subo los cambios al repositorio remoto (GitHub)
git
push
Enumerating
objects
:
4
,
done
.
Counting
objects
:
100
%
(
4
/
4
)
,
done
.
Delta
compression
using
up
to
8
threads
Compressing
objects
:
100
%
(
2
/
2
)
,
done
.
Writing
objects
:
100
%
(
3
/
3
)
,
266
bytes
|
266.00
KiB
/
s
,
done
.
Total
3
(
delta
1
)
,
reused
1
(
delta
0
)
,
pack
-
reused
0
remote
:
Resolving
deltas
:
100
%
(
1
/
1
)
,
completed
with
1
local
object
.
To
https
:
//github.com/collectivecloudperu/reloj-numerico-javascript.git
 Â
e05abff
.
.
5eb3c4c
 Â
main
->
main
Entonces si voy a mi repositorio remoto en GitHub, puedo ver que se ha incluido el archivo
test.txt
sin problemas.
Bueno hasta aquĂ terminamos con la primera parte de este Post en donde aprendimos a deshacer commits de manera local.
Ten Paciencia, lo que quiero es que
conozcas bien como deshacer commits y no llenarte el capitulo de mucho contenido porque te puedes marear y no tendrás un Ăłptimo aprendizaje.Â
Nota (s)
En la siguiente parte y Ăşltima, vamos a deshacer commits de repositorios remotos.
No olvides que debemos usar la TecnologĂa para hacer cosas Buenas por el Mundo.Â
SĂguenos en nuestras Redes Sociales para que no te pierdas nuestros prĂłximos contenidos. |
| Markdown | - [Backend](https://blog.nubecolectiva.com/category/backend/)
- [API REST](https://blog.nubecolectiva.com/category/backend/api-rest/)
- [GraphQL](https://blog.nubecolectiva.com/category/bases-de-datos/graphql/)
- [Bases de Datos](https://blog.nubecolectiva.com/category/bases-de-datos/)
- [Apache Cassandra](https://blog.nubecolectiva.com/category/bases-de-datos/apache-cassandra/)
- [MariaDB](https://nubecolectiva.com/blog/category/bases-de-datos/mariadb/)
- [MongoDB](https://blog.nubecolectiva.com/category/mongo-db/)
- [MySQL](https://blog.nubecolectiva.com/category/bases-de-datos/mysql/)
- [OracleDB](https://blog.nubecolectiva.com/category/bases-de-datos/oracle-db/)
- [PostgreSQL](https://blog.nubecolectiva.com/category/bases-de-datos/postgresql/)
- [Redis](https://blog.nubecolectiva.com/category/bases-de-datos/redis/)
- [SQL](https://blog.nubecolectiva.com/category/bases-de-datos/sql/)
- [SQLite](https://blog.nubecolectiva.com/category/bases-de-datos/sqlite/)
- [MS SQL Server](https://blog.nubecolectiva.com/category/bases-de-datos/ms-sql-server/)
- [C\#](https://blog.nubecolectiva.com/category/backend/c/)
- [Dart](https://blog.nubecolectiva.com/category/dart/)
- [Django](https://blog.nubecolectiva.com/category/backend/django/)
- [Tutoriales de Go](https://blog.nubecolectiva.com/category/backend/tutoriales-go/)
- [Gin](https://blog.nubecolectiva.com/category/backend/gin/)
- [Java](https://blog.nubecolectiva.com/category/java/)
- [Laravel](https://blog.nubecolectiva.com/category/backend/laravel/)
- [Node JS](https://blog.nubecolectiva.com/category/backend/node-js/)
- [PHP](https://blog.nubecolectiva.com/category/backend/php/)
- [Python](https://blog.nubecolectiva.com/category/backend/python/)
- [Ruby](https://blog.nubecolectiva.com/category/backend/ruby/)
- [Ruby on Rails](https://blog.nubecolectiva.com/category/backend/ruby-on-rails/)
- [Rust](https://blog.nubecolectiva.com/category/backend/rust/)
- [Spring](https://blog.nubecolectiva.com/category/backend/spring/)
- [Frontend](https://blog.nubecolectiva.com/category/frontend/)
- [Angular](https://blog.nubecolectiva.com/category/frontend/angular-js/)
- [Axios](https://blog.nubecolectiva.com/category/frontend/axios/)
- [Bootstrap](https://blog.nubecolectiva.com/category/frontend/bootstrap/)
- [CSS](https://blog.nubecolectiva.com/category/frontend/css/)
- [Flutter](https://blog.nubecolectiva.com/category/flutter/)
- [HTML](https://blog.nubecolectiva.com/category/frontend/html/)
- [JavaScript](https://blog.nubecolectiva.com/category/frontend/javascript/)
- [Material Design](https://blog.nubecolectiva.com/category/frontend/material-design/)
- [Micro Frontends](https://blog.nubecolectiva.com/category/frontend/micro-frontends/)
- [jQuery](https://blog.nubecolectiva.com/category/frontend/jquery/)
- [React JS](https://blog.nubecolectiva.com/category/frontend/react-js/)
- [Svelte](https://blog.nubecolectiva.com/category/frontend/svelte/)
- [Tailwind CSS](https://blog.nubecolectiva.com/category/frontend/tailwind-css/)
- [TypeScript](https://blog.nubecolectiva.com/category/frontend/typescript/)
- [Vite JS](https://blog.nubecolectiva.com/category/frontend/vite-js/)
- [Vue JS](https://blog.nubecolectiva.com/category/frontend/vue-js/)
- [MĂłvil](https://blog.nubecolectiva.com/category/movil/)
- [Android](https://blog.nubecolectiva.com/category/movil/android/)
- [Android Studio](https://blog.nubecolectiva.com/category/movil/android-studio/)
- [Kotlin](https://blog.nubecolectiva.com/category/movil/android/kotlin/)
- [Ionic](https://blog.nubecolectiva.com/category/movil/ionic/)
- [iOS](https://blog.nubecolectiva.com/category/movil/ios/)
- [Swift](https://blog.nubecolectiva.com/category/movil/ios/swift/)
- [React Native](https://blog.nubecolectiva.com/category/movil/react-native/)
- [Digital](https://blog.nubecolectiva.com/category/marketing-digital/)
- [Marketing Digital](https://blog.nubecolectiva.com/category/marketing-digital/)
- [Social Media](https://blog.nubecolectiva.com/category/social-media/)
- [UI](https://blog.nubecolectiva.com/category/ui/)
- [Unicode](https://blog.nubecolectiva.com/category/unicode/)
- [UX](https://blog.nubecolectiva.com/category/ux/)
- [WordPress](https://blog.nubecolectiva.com/category/wordpress/)
- [Más +](https://blog.nubecolectiva.com/category/articulos/)
- [ArtĂculos](https://blog.nubecolectiva.com/category/articulos/)
- [Blockchain](https://blog.nubecolectiva.com/category/articulos/blockchain/)
- [Ciberseguridad](https://blog.nubecolectiva.com/category/ciberseguridad/)
- [Hacking Ético](https://blog.nubecolectiva.com/category/hacking-etico/)
- [Pentesting](https://blog.nubecolectiva.com/category/pentesting/)
- [Seguridad](https://blog.nubecolectiva.com/category/seguridad/)
- [Data Science](https://blog.nubecolectiva.com/category/data-science/)
- [Devs](https://blog.nubecolectiva.com/category/devs/)
- [Agile](https://blog.nubecolectiva.com/category/devs/agile/)
- [APIs](https://blog.nubecolectiva.com/category/apis/)
- [Arduino](https://blog.nubecolectiva.com/category/arduino/)
- [Arq. Software](https://blog.nubecolectiva.com/category/arquitectura-de-software/)
- [CDNs](https://blog.nubecolectiva.com/category/cdns/)
- [Chrome Dev Tools](https://blog.nubecolectiva.com/category/articulos/dev-tools-google-chrome/)
- [Cloud Computing](https://blog.nubecolectiva.com/category/cloud-computing/)
- [DApps](https://blog.nubecolectiva.com/category/dapps/)
- [DevOps](https://blog.nubecolectiva.com/category/devops/)
- [Docker](https://blog.nubecolectiva.com/category/docker/)
- [Editores de CĂłdigo](https://blog.nubecolectiva.com/category/devs/editores-de-codigo/)
- [Experimental](https://blog.nubecolectiva.com/category/experimental/)
- [GitOps](https://blog.nubecolectiva.com/category/gitops/)
- [JAMStack](https://blog.nubecolectiva.com/category/jamstack/)
- [Kubernetes](https://blog.nubecolectiva.com/category/kubernetes/)
- [NFT](https://blog.nubecolectiva.com/category/nft/)
- [Raspberry Pi](https://blog.nubecolectiva.com/category/raspberry-pi/)
- [Socket IO](https://blog.nubecolectiva.com/category/articulos/socket-io/)
- [Testing](https://blog.nubecolectiva.com/category/testing/)
- [Web 3.0](https://blog.nubecolectiva.com/category/web-3-0/)
- [Eventos Dev](https://blog.nubecolectiva.com/category/eventos-dev/)
- [Apple WWDC](https://blog.nubecolectiva.com/category/eventos-dev/apple-wwdc/)
- [Google IO](https://blog.nubecolectiva.com/category/eventos-dev/google-io/)
- [Firebase](https://blog.nubecolectiva.com/category/firebase/)
- [Game Dev](https://blog.nubecolectiva.com/category/game-dev/)
- [Unity](https://blog.nubecolectiva.com/category/game-dev/unity/)
- [Git](https://blog.nubecolectiva.com/category/articulos/git/)
- [GitHub](https://blog.nubecolectiva.com/category/articulos/github/)
- [Tendencia GitHub](https://blog.nubecolectiva.com/category/articulos/github/tendencias-github/)
- [Inteligencia Artificial](https://blog.nubecolectiva.com/category/inteligencia-artificial/)
- [Linux](https://blog.nubecolectiva.com/category/linux/)
- [Machine Learning](https://blog.nubecolectiva.com/category/machine-learning/)
- [News](https://blog.nubecolectiva.com/category/news/)
- [Rankings / Tops](https://blog.nubecolectiva.com/category/rankings-tops/)
- [Ranking BD](https://blog.nubecolectiva.com/category/bases-de-datos/ranking-bd/)
- [Ranking Lenguajes](https://blog.nubecolectiva.com/category/ranking-lenguajes-de-programacion/)
- [Stack Overflow](https://blog.nubecolectiva.com/category/articulos/stack-overflow/)
- [Tendencias GitHub](https://blog.nubecolectiva.com/category/articulos/github/tendencias-github/)
- [Recursos](https://blog.nubecolectiva.com/category/articulos/recursos/)
- [SEO](https://blog.nubecolectiva.com/category/seo/)
- [Servidores](https://blog.nubecolectiva.com/category/servidores/)
- [VPS](https://blog.nubecolectiva.com/category/servidores/vps/)
- [TecnologĂa](https://blog.nubecolectiva.com/category/tecnologia/)
- [Tutoriales](https://blog.nubecolectiva.com/category/tutoriales/)
- [Utilidades](https://blog.nubecolectiva.com/category/utilidades/)
- [Accesorios Dev](https://blog.nubecolectiva.com/category/accesorios-dev/)
- [Devs Hardware](https://blog.nubecolectiva.com/category/devs-hardware/)
- [Anuncios](https://blog.nubecolectiva.com/category/anuncios/)
- [Nosotros](https://nubecolectiva.com/)
- [¿Quiénes Somos?](https://nubecolectiva.com/nosotros/)
- [Contacto](https://nubecolectiva.com/contacto/)
- [Cursos (GRATIS)](https://nubecolectiva.com/cursos)
- [Testimonios](https://nubecolectiva.com/testimonios/ "Lo que dicen los usuarios sobre nuestros contenidos y productos.")
- [Nos Mencionan](https://blog.nubecolectiva.com/nos-mencionan/ "Lo que dicen los usuarios sobre nuestros contenidos y productos.")
Buscar
[Donar](https://nubecolectiva.com/donaciones/ "Donar")
[](https://fantasticoo.com/ "Explora más, aprende más")
. 

[](https://blog.nubecolectiva.com/)
[CategorĂas](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- - [ProgramaciĂłn](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [Python](https://nubecolectiva.com/blog/category/backend/python/)
- [JavaScript](https://nubecolectiva.com/blog/category/frontend/javascript/)
- [PHP](https://nubecolectiva.com/blog/category/backend/php/)
- [ProgramaciĂłn Orientada a Objetos (POO)](https://nubecolectiva.com/?s=poo)
- [Desarrollo](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [Aplicaciones MĂłviles](https://nubecolectiva.com/blog/category/movil/)
- [APIs](https://nubecolectiva.com/blog/category/apis/)
- [Visual Studio Code](https://nubecolectiva.com/?s=visual+studio+code)
- [Buenas Prácticas](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [Inteligencia Artificial y Ciencia de Datos](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [Data Science (Ciencia de Datos)](https://nubecolectiva.com/blog/category/data-science/)
- [ChatGPT](https://nubecolectiva.com/blog/category/inteligencia-artificial/chatgpt/)
- [Claude AI](https://nubecolectiva.com/blog/category/inteligencia-artificial/claude-ai/)
- [GitHub Copilot](https://nubecolectiva.com/blog/category/inteligencia-artificial/github-copilot/)
- [DeepSeek](https://nubecolectiva.com/blog/category/inteligencia-artificial/deepseek/)
- [Gemini AI](https://nubecolectiva.com/blog/category/inteligencia-artificial/gemini-ai/)
- [Grok AI](https://nubecolectiva.com/blog/category/inteligencia-artificial/grok-ai/)
- [Machine Learning](https://nubecolectiva.com/blog/category/machine-learning/)
- [MCP (Model Context Protocol)](https://nubecolectiva.com/blog/category/inteligencia-artificial/mcp/)
- [Ciberseguridad](https://nubecolectiva.com/blog/category/ciberseguridad/)
- [Pentesting](https://nubecolectiva.com/blog/category/pentesting/)
- [Hacking Ético](https://nubecolectiva.com/blog/category/ciberseguridad/hacking-etico/)
- [Herramientas](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [Blockchain y NFT](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [Web 3.0](https://nubecolectiva.com/blog/category/web-3-0/)
- [NFT](https://nubecolectiva.com/blog/category/nft/)
- [Blockchain](https://nubecolectiva.com/blog/category/articulos/blockchain/)
- [Diseño y SEO](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [UX](https://nubecolectiva.com/blog/category/ux/)
- [UI](https://nubecolectiva.com/blog/category/ui/)
- [SEO Técnico](https://nubecolectiva.com/blog/category/seo/)
- [Accesibilidad](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [Tendencias y Herramientas](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [Noticias TecnolĂłgicas](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [Comparativas y Análisis](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [Herramientas para Devs](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
1. [Home](https://nubecolectiva.com/) » [Git](https://nubecolectiva.com/blog/category/articulos/git/) » **Como Deshacer Commits en Git (Forma Local y Remota) – Parte 1**
# Como Deshacer Commits en Git (Forma Local y Remota) – Parte 1


6 minuto(s)
En esta página:
- [Partes](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/#toc-1)
- [Deshaciendo Commits](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/#toc-2)
- [Deshaciendo Localmente Commits para evitar Archivos no deseados](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/#toc-3)
- [Deshaciendo Localmente Commits con Mensajes de confirmaciĂłn mal escritos](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/#toc-4)
- [Deshaciendo Localmente Commits para Agregar cambios al Ăşltimo commit](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/#toc-5)
- [Nota (s)](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/#toc-6)
En la industria actual hay muchos desarrolladores y equipos de trabajo que suelen usar Git y GitHub para gestionar los repositorios de sus proyectos. Git es el sistema de control de versiones (VCS) más popular del mundo actualmente, nos permite hacer un seguimiento de los cambios de archivos basados en texto. Pero a veces como seres humanos podemos cometer errores a la hora de subir cambios a GitHub, en este Post te enseñare como deshacer estos cambios o commits antes de ser enviados, vamos con ello.
## Partes
- Parte 1
- [Parte 2](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota-parte-2-final/) (Final)
[](https://nubecolectiva.com/wp-content/uploads/2021/04/j1.jpg)
Antes de continuar, te invito a leer los siguientes artĂculos para que estĂ©s familiarizado con este tutorial:
- [Que es Git, como utilizarlo y otros detalles](https://nubecolectiva.com/blog/que-es-git-como-utilizarlo-y-otros-detalles/)
- [Conceptos y Técnicas de Git que debes saber antes de unirte a un Equipo de Git – Parte 1](https://nubecolectiva.com/blog/conceptos-y-tecnicas-de-git-que-debes-saber-antes-de-unirte-a-un-equipo-de-git-parte-1/)
- [Que son las Ramas (Branches) en Git, como utilizarlas y otros detalles](https://nubecolectiva.com/blog/que-son-las-ramas-branches-en-git-como-utilizarlas-y-otros-detalles/)
- [Como usar la versiĂłn GUI de Git (No Consola GitBash)](https://nubecolectiva.com/blog/como-usar-la-version-gui-de-git-no-consola-gitbash/)
- Puedes leer más en la [categorĂa Git](https://nubecolectiva.com/blog/category/articulos/git/)
Asimismo te invito a escuchar el **Podcast**: “*5 Consejos para ser un Programador más Productivo*” (No son los clásicos consejos técnicos de programación, si no de rutinas y buenos hábitos cotidianos):
| | | |
|---|---|---|
| **Spotify:** | **Sound Cloud:** | **Apple Podcasts** |
| [](https://open.spotify.com/episode/6qN4nZ62ypXus6v6nqjWtu) | [](https://soundcloud.com/nube-colectiva/2-5-consejos-para-ser-un-programador-mas-productivo) | [](https://podcasts.apple.com/pe/podcast/2-5-consejos-para-ser-un-programador-m%C3%A1s-productivo/id1532848819?i=1000492079279) |
Bien ahora continuemos con el Post: Como Deshacer Commits en Git (Forma Local y Remota) – Parte 1.
Para este Post haré uso de [este repositorio](https://github.com/collectivecloudperu/reloj-numerico-javascript) el cual pertenece al tutorial llamado [Como Crear un Reloj Digital (Numérico) con JavaScript](https://nubecolectiva.com/blog/como-crear-un-reloj-digital-numerico-con-javascript/).
<https://nubecolectiva.com/blog/como-crear-un-reloj-digital-numerico-con-javascript/>
Bueno ahora pasemos a realizar operaciones en el repositorio.
## Deshaciendo Commits
Los commits de Git más fáciles de deshacer son los que aĂşn no han sido enviando a un repositorio remoto como GitHub, Bitbucket, etc. Como usuario propietario, eres libre de hacer cualquier cosa en tu repositorio local. Pero cuando se trata de editar un historial de commits que se envĂan a un repositorio remoto, que por cierto pueden ser usados pĂşblicamente una ves que se encuentran en lĂnea.
Esto significa que estamos poniendo en peligro el trabajo de otros desarrolladores al destruir el historia de git que ya está en uso. Por ello vamos a ver casos de como deshacer commits local y remotamente. En esta primera parte vamos a ver casos de manera local.
### Deshaciendo Localmente Commits para evitar Archivos no deseados
Supongamos que estoy a punto de realizar un commit en mi repositorio local, haciendo uso del comando **git add .** o **git add –all** los cuales agregan todos los cambios de archivo al área de preparaciĂłn en el repositorio. A veces podemos olvidar que algunos archivos no están relacionados con ese commit y no deberĂamos de incluirlos.
Por suerte no es demasiado tarde, ya que podemos hacer uso del comando **git reset** agregando el **nombredelarchivo** que no queremos incluir. Por ejemplo si en mi repositorio local en la PC tengo un archivo llamado **test.rar** y ese archivo no forma parte del proyecto y no lo quiero incluir.
/reloj-numerico-javascript ├── /css ├── /js ├── index.html ├── README.md ├── test.rar // Omitir este Archivo
| | |
|---|---|
| 1 2 3 4 5 6 7 8 | /reloj\-numerico\-javascript ├── /css ├── /js ├── index.html ├── README.md ├── test.rar // Omitir este Archivo |
Puedo hacer los pasos correspondientes para subir cambios a mi repositorio remoto, pero luego de ejecutar el comando **git add .** debo de escribir el comando **git reset test.rar** para no incluir ese archivo y luego continuar con los pasos respectivos para subir los cambios.
// Preparo los archivos git add . // No incluir el archivo test.rar git reset test.rar // Preparar el Commit git commit -m "Cambios" \[main 08c3d2f\] Cambios 1 file changed, 1 insertion(+), 1 deletion(-) // Subir los cambios al repositorio remoto (GitHub) git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 366 bytes \| 366.00 KiB/s, done. Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (1/1), completed with 1 local object. To https://github.com/collectivecloudperu/reloj-numerico-javascript.git 65006a0..08c3d2f main -\> main
| | |
|---|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | // Preparo los archivos git add . // No incluir el archivo test.rar git reset test.rar // Preparar el Commit git commit \-m "Cambios" \[main 08c3d2f\] Cambios 1 file changed, 1 insertion(\+), 1 deletion(\-) // Subir los cambios al repositorio remoto (GitHub) git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 366 bytes \| 366\.00 KiB/s, done. Total 3 (delta 1), reused 0 (delta 0), pack\-reused 0 remote: Resolving deltas: 100% (1/1), completed with 1 local object. To https://github.com/collectivecloudperu/reloj-numerico-javascript.git 65006a0..08c3d2f main \-\> main |
Como yo solo hice unos cambios en el archivo **index.html** del proyecto, si voy al repositorio remoto en GitHub, puedo ver que solo hubo cambios en ese archivo y el archivo **test.rar** no se subiĂł.
[](https://nubecolectiva.com/wp-content/uploads/2021/04/j2.jpg)
Bien ahora pasemos a otro caso sobre los mensajes de confirmaciĂłn mal escritos.
### Deshaciendo Localmente Commits con Mensajes de confirmaciĂłn mal escritos
Luego de hacer mi Ăşltimo commit en mi repositorio local, puede pasar que escribĂ mal una palabra en mi mensaje de confirmaciĂłn o commit, por ejemplo escribĂ la palabra *“Cabios”* en lugar de la palabra *“Cambios”*, no es demasiado tarde ya que puedo usar el comando **git commit** con la flag o bandera **–amend**, es decir el comando quedarĂa asĂ **git commit –amend -m “Cambios”**
// Palabra 'Cambios' mal escrita git commit -m "Cabios" \[main 3d88eef\] Cabios 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 test.rar // Palabra 'Cambios' corregida git commit --amend -m "Cambios" \[main 663c8d1\] Cambios Date: Sun Apr 18 23:41:21 2021 -0500 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 test.rar
| | |
|---|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // Palabra 'Cambios' mal escrita git commit \-m "Cabios" \[main 3d88eef\] Cabios 2 files changed, 1 insertion(\+), 1 deletion(\-) create mode 100644 test.rar // Palabra 'Cambios' corregida git commit \--amend \-m "Cambios" \[main 663c8d1\] Cambios Date: Sun Apr 18 23:41:21 2021 \-0500 2 files changed, 1 insertion(\+), 1 deletion(\-) create mode 100644 test.rar |
Entonces si hago todos los pasos correspondientes para subir los cambios (suponiendo que hice cambios solamente en el archivo **index.html**) al repositorio remoto, puedo ver en GitHub que el texto o palabra *Cambios* aparece correctamente.
[](https://nubecolectiva.com/wp-content/uploads/2021/04/edit_j3.jpg)
Ahora pasemos a ver otro caos referente a cambios al Ăşltimo commit
### Deshaciendo Localmente Commits para Agregar cambios al Ăşltimo commit
Supongamos que tenemos un commit que aún no se ha enviado y nos damos cuenta que se necesitan hacer cambios adicionales. Para solucionar esto, primero debemos agregar los archivos modificados al área de preparación mediante el comando **git add** seguido del **nombredelarchivo**.
Por ejemplo tengo un archivo llamado **test.txt** el cual quiero agregar a mi commit a Ăşltimo momento
/reloj-numerico-javascript ├── /css ├── /js ├── index.html ├── README.md ├── test.txt // Agregue este archivo a ultimo momento
| | |
|---|---|
| 1 2 3 4 5 6 7 8 | /reloj\-numerico\-javascript ├── /css ├── /js ├── index.html ├── README.md ├── test.txt // Agregue este archivo a ultimo momento |
Antes de que el archivo **test.txt** fuese creado yo ejecute el primer comando que sirve para preparar los cambios, es decir el comando **git add .** y luego que agregue el archivo **test.txt**, entonces allĂ debo de ejecutar el comando **git add test.txt** para incluirlo en el commit.
// Preparo los archivos git add . // Agrego el archivo que fue creado a Ăşltimo momento git add test.txt // Preparo el Commit git commit -m "Cambios" \[main 5eb3c4c\] Cambios 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test.txt // Subo los cambios al repositorio remoto (GitHub) git push Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 8 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 266 bytes \| 266.00 KiB/s, done. Total 3 (delta 1), reused 1 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (1/1), completed with 1 local object. To https://github.com/collectivecloudperu/reloj-numerico-javascript.git e05abff..5eb3c4c main -\> main
| | |
|---|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | // Preparo los archivos git add . // Agrego el archivo que fue creado a Ăşltimo momento git add test.txt // Preparo el Commit git commit \-m "Cambios" \[main 5eb3c4c\] Cambios 1 file changed, 0 insertions(\+), 0 deletions(\-) create mode 100644 test.txt // Subo los cambios al repositorio remoto (GitHub) git push Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 8 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 266 bytes \| 266\.00 KiB/s, done. Total 3 (delta 1), reused 1 (delta 0), pack\-reused 0 remote: Resolving deltas: 100% (1/1), completed with 1 local object. To https://github.com/collectivecloudperu/reloj-numerico-javascript.git e05abff..5eb3c4c main \-\> main |
Entonces si voy a mi repositorio remoto en GitHub, puedo ver que se ha incluido el archivo **test.txt** sin problemas.
[](https://nubecolectiva.com/wp-content/uploads/2021/04/j4.jpg)
Bueno hasta aquĂ terminamos con la primera parte de este Post en donde aprendimos a deshacer commits de manera local.
**Ten Paciencia, lo que quiero es que** conozcas bien como deshacer commits y no llenarte el capitulo de mucho contenido porque te puedes marear y no tendrás un óptimo aprendizaje.
## Nota (s)
- En la siguiente parte y Ăşltima, vamos a deshacer commits de repositorios remotos.
- No olvides que debemos usar la TecnologĂa para hacer cosas Buenas por el Mundo.
SĂguenos en nuestras Redes Sociales para que no te pierdas nuestros prĂłximos contenidos.
[Git](https://nubecolectiva.com/blog/category/articulos/git/) 18-04-2021 18-04-2021 [Crear un Post](https://comunidad.nubecolectiva.com/colaborador) – [Eventos Devs](https://comunidad.nubecolectiva.com/eventos) – [Foro](https://comunidad.nubecolectiva.com/foro)
## Sobre el Autor


**Juan Castro** — Ingeniero de Software con más de 17 años de experiencia en desarrollo, ia, ml, devops, data science, ciberseguridad y tecnologĂa.
**Certificados oficiales:**
[](https://drive.google.com/file/d/1_sjabUKy1jVuknibnvPF-NFxWjxXe5xr/view?usp=sharing "Certificado Microsoft Azure Fundamentals") [](https://drive.google.com/file/d/1v3T1vSn2a6y-G0V6vuZlo1MjM2oQ7XtX/view?usp=sharing "Certificado AWS Designing Event-Driven Architectures") [](https://drive.google.com/file/d/1Wq4QbqDCKvXscmdHamL9MO8-U40YDiHh/view?usp=sharing "Certificado Google Desarrollo de Aplicaciones MĂłviles")
[Ver más](https://nubecolectiva.com/blog/autor/juan-castro/)
[Como Deshacer Commits en Git](https://nubecolectiva.com/blog/tag/como-deshacer-commits-en-git/) [Git](https://nubecolectiva.com/blog/tag/git/) [GitHub](https://nubecolectiva.com/blog/tag/github/)
Newsletter
[Siguiente Post](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota-parte-2-final/)
[Post Anterior](https://nubecolectiva.com/blog/como-agregar-un-numero-de-movil-para-hacer-pruebas-en-firebase-authentication-validacion-sms/)
## Sobre el Autor


**Juan Castro** — Ingeniero de Software con más de 17 años de experiencia en desarrollo, ia, ml, devops, data science, ciberseguridad y tecnologĂa.
**Certificados oficiales:**
[](https://drive.google.com/file/d/1_sjabUKy1jVuknibnvPF-NFxWjxXe5xr/view?usp=sharing "Certificado Microsoft Azure Fundamentals") [](https://drive.google.com/file/d/1v3T1vSn2a6y-G0V6vuZlo1MjM2oQ7XtX/view?usp=sharing "Certificado AWS Designing Event-Driven Architectures") [](https://drive.google.com/file/d/1Wq4QbqDCKvXscmdHamL9MO8-U40YDiHh/view?usp=sharing "Certificado Google Desarrollo de Aplicaciones MĂłviles")
[Ver más](https://nubecolectiva.com/blog/autor/juan-castro/)
## \+ ArtĂculos y Tutoriales
- [CĂłmo usar Elementor en WordPress Paso a Paso](https://nubecolectiva.com/blog/como-usar-elementor-en-wordpress-paso-a-paso/)
- [5 Empresas o Proyectos Que Usan Rust](https://nubecolectiva.com/blog/empresas-proyectos-usan-rust/)
- [5 extensiones que te harán más Productivo en Sublime Text 3](https://nubecolectiva.com/blog/5-extensiones-que-te-haran-mas-productivo-en-sublime-text-3/)
- [Lo que necesitas saber sobre Pokémon Go y dónde jugarlo en Lima](https://nubecolectiva.com/blog/lo-que-necesitas-saber-sobre-pokemon-go-y-donde-jugarlo-en-lima/)
- [Las metas de Facebook en los próximos años que cambiarán el mundo.](https://nubecolectiva.com/blog/las-metas-de-facebook-en-los-proximos-anos-que-cambiaran-el-mundo/)


Preguntar
Partners
[](https://nubecolectiva.com/vps_cw.php)
[](https://nubecolectiva.com/vps_io.php)
[](https://nubecolectiva.com/vps_na.php)
[](https://nubecolectiva.com/vps_ka.php)
[](https://nubecolectiva.com/vps_ve.php)
[](https://nubecolectiva.com/vps_do.php)
Somos una empresa lĂder en soluciones digitales, ofreciendo servicios de Hosting, VPS y otros productos tecnolĂłgicos de alta calidad. Con más de 20 años de experiencia, nuestras soluciones son utilizadas por [grandes empresas y organizaciones](https://nubecolectiva.com/clientes/ "Ver los Clientes de Nube Colectiva"), que confĂan en nosotros por nuestra fiabilidad, rendimiento y soporte especializado.
Descubre lo que dicen de nosotros: [Nos Mencionan](https://nubecolectiva.com/nos-mencionan/ "Lo que dicen los usuarios sobre nuestros contenidos y productos.") .
[Subir](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
Nube Colectiva © . Todos los Derechos Reservados.
Utilizamos cookies para proporcionar y mejorar nuestros servicios. Al navegar por nuestro sitio, usted acepta las cookies. [PolĂtica de Cookies](https://nubecolectiva.com/politica-de-cookies/) \| [PolĂtica de Privacidad](https://nubecolectiva.com/politica-de-privacidad/)
Gestionar consentimiento
Para ofrecer las mejores experiencias, utilizamos tecnologĂas como las cookies para almacenar y/o acceder a la informaciĂłn del dispositivo. El consentimiento de estas tecnologĂas nos permitirá procesar datos como el comportamiento de navegaciĂłn o las identificaciones Ăşnicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas caracterĂsticas y funciones.
Funcional
Funcional
Siempre activo
El almacenamiento o acceso tĂ©cnico es estrictamente necesario para el propĂłsito legĂtimo de permitir el uso de un servicio especĂfico explĂcitamente solicitado por el abonado o usuario, o con el Ăşnico propĂłsito de llevar a cabo la transmisiĂłn de una comunicaciĂłn a travĂ©s de una red de comunicaciones electrĂłnicas.
Preferencias
Preferencias
El almacenamiento o acceso tĂ©cnico es necesario para la finalidad legĂtima de almacenar preferencias no solicitadas por el abonado o usuario.
EstadĂsticas
EstadĂsticas
El almacenamiento o acceso tĂ©cnico que es utilizado exclusivamente con fines estadĂsticos. El almacenamiento o acceso tĂ©cnico que se utiliza exclusivamente con fines estadĂsticos anĂłnimos. Sin un requerimiento, el cumplimiento voluntario por parte de tu Proveedor de servicios de Internet, o los registros adicionales de un tercero, la informaciĂłn almacenada o recuperada sĂłlo para este propĂłsito no se puede utilizar para identificarte.
Marketing
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en una web o en varias web con fines de marketing similares.
- [Administrar opciones](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [Gestionar los servicios](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [Gestionar {vendor\_count} proveedores](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [Leer más sobre estos propósitos](https://cookiedatabase.org/tcf/purposes/)
Aceptar
Denegar
Ver preferencias
Guardar preferencias
[Ver preferencias](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [{title}](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [{title}](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
- [{title}](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/)
Gestionar consentimiento
##### đź”” Novedades en la Comunidad
###### Nuevo Cliente: Activision Blizzard - 25-11-2025
Demos la bienvenida a nuestro cliente **Activision Blizzard**
[](https://nubecolectiva.com/clientes/)
Puedes obtener más información en [nuestra página de clientes](https://nubecolectiva.com/clientes/ "Ver clientes").
***
###### Altura de Entradas Corregida - 16-06-2025
Ahora las entradas del [Blog](https://nubecolectiva.com/blog/ "Visitar el blog de Nube Colectiva") muestra el mismo alto. 

TambiĂ©n en las categorĂas, etiquetas, bĂşsquedas y más. En versiones anteriores, se veian con alto disparejo. Seguimos trabajando en mejorar la comunidad.
***
###### Nuevos Clientes - 07-03-2025
Demos la bienvenida a los clientes:
- J.K. Rowling
- FundaciĂłn CRAM
- Pangolia
[](https://nubecolectiva.com/clientes/)
Puedes obtener más información en [nuestra página de clientes](https://nubecolectiva.com/clientes/ "Ver clientes").
***
###### Nuevo Curso GRATIS en Nube Colectiva ! - 08-12-2024
Hace unas semanas iniciamos el Curso de Ciberseguridad desde Cero GRATIS:
[](https://www.youtube.com/playlist?list=PLc7-e09KUrJGwS6bYxX0cyYCQsbu74oXs "Iniciar Curso GRATIS")
Puedes encontrarlo [en este enlace](https://www.youtube.com/playlist?list=PLc7-e09KUrJGwS6bYxX0cyYCQsbu74oXs "Iniciar Curso GRATIS").
Aprovecha esta oportunidad y capacitate GRATIS para mejor como profesional.
***
###### Nueva Página Para los Apple Podcasts - 07-10-2024
La URL anterior de los los Apple Podcasts de Nube Colectiva ha sido retirada.
Ahora los Apple Podcasts de Nube Colectiva los puedes encontrar en el siguiente enlace:
<https://podcasts.apple.com/pe/podcast/nube-colectiva/id1532848819>
También lo puedes encontrar en nuestra sección de iconos de Redes Sociales:


Seguimos trabajando en mejorar la comunidad.
***
###### Nuevo Curso GRATIS en Nube Colectiva ! - 24-08-2024
Hemos iniciado el curso: **Curso de Ciencia de Datos con Python**
Puedes encontrarlo [en este enlace](https://www.youtube.com/playlist?list=PLc7-e09KUrJGti7J_F1SKHoXLXaLC5UiA "Ingresar al curso (GRATIS)") o presionando la siguiente imagen:
[](https://www.youtube.com/playlist?list=PLc7-e09KUrJGti7J_F1SKHoXLXaLC5UiA "Ingresar al curso (GRATIS)")
Mucha suerte y nunca pares de aprender.
***
###### Nuevos Clientes - 01-08-2024
Los siguiente clientes están usando nuestros productos y servicios:
- jQuery
- Shimano LATAM
- Estado de California (EE.UU.)
Puedes encontrarlos en [nuestra secciĂłn de clientes](https://nubecolectiva.com/clientes/ "Ver clientes").
***
###### Aviso a la Comunidad - 10-07-2024


***
###### Publicamos Nuestro Pastebin - 30-06-2024
Nuestra [cuenta de Pastebin](https://pastebin.com/u/NubeColectiva "Visitar la cuenta de Pastebin de Nube Colectiva") ha sido compartida en Nube Colectiva: 

Seguimos trabajando las 24 horas del dĂa para brindarte la mejor experiencia en la comunidad.
***
###### Canal de WhatsApp y Telegram Corregidos - 15-05-2024
Ahora puedes unirte y mirar el contenido gratis:
- <https://whatsapp.com/channel/0029Va1TzpI72WU03eYrJv1g> (Canal de WhatsApp)
- [https://t.me/+hI8z-OCJF-1kZjAx](https://t.me/+hI8z-OCJF-1kZjAx) (Canal de Telegram)
También puedes encontrarlos en el botón **Social** del header: 

Seguimos trabajando las 24 horas para mejorar tu experiencia en la comunidad.
***
###### Podcasts Actualizados - 14-05-2024
El contenido de los siguientes Podcasts han sido actualizados:
- <https://open.spotify.com/show/0IhovCtKYqQIHwvNRTvUhl>
- <https://apple.co/32W9q7A>
- <https://www.youtube.com/@NubeColectivaDevs/podcasts> (Reemplaza a Google Podcasts)
Asimismo comenzarán a tener nuevos episodios gratis que te ayudarán a crecer como profesional. Trabajamos las 24 horas del dĂa, para mejorar la comunidad.
***
###### Barra Horizontal de la Web Corregida en MĂłviles - 08-05-2024
Cuando un usuario visitaba nuestra página web desde su celular. Le aparecĂa una barra horizontal, impidiendo que la web se muestra en su vista natural: 

Hemos corregido el problema y ahora la web no muestra esa barra horizontal y se ve en su tamaño natural. Seguimos trabajando las 24 horas del dĂa, para mejorar la comunidad.
***
###### Actualizaciones en las Redes Sociales - 17-04-2024
Hemos actualizado el icono de Instagram. También hemos agregado grupos de Skype para los que gustan usar esta herramienta de comunicación: 

Seguimos trabajando las 24 horas y 365 dĂas del año para mejorar tu experiencia en la comunidad.
***
###### Comenzaron los Trabajos en la Página de Eventos ! - 09-04-2024
Para brindarte los mejores [eventos de programaciĂłn y tecnologĂa](https://nubecolectiva.com/comunidad/eventos/ "Ir a la página de Eventos de Nube Colectiva") \!
[](https://nubecolectiva.com/comunidad/eventos/)
No olvides visitarla constantemente para encontrar nuevos eventos.
***
###### Tenemos Blue Skye (Red Social Descentralizada) - 05-04-2024
Usa tecnologĂa Blockchain, por ende es segura:
[](https://bsky.app/profile/nubecolectiva.bsky.social)
Puedes seguirnos en [nuestra cuenta de Blue Sky](https://bsky.app/profile/nubecolectiva.bsky.social "Visitar la cuenta de Blue Sky de Nube Colectiva"), en donde compartimos contenido nuevo todos los dĂas.
***
###### Estamos rediseñando la Web - 05-04-2024
Los cambios y nuevas páginas se irán viendo poco a poco [en nuestra web](https://nubecolectiva.com/ "Visitar la web de Nube Colectiva"): 

Seguimos trabajando para brindarte le mejor experiencia en Nube Colectiva.
***
Cerrar
##### Social
##### Redes Sociales (Developers)
[](https://nubecolectiva.com/blog "Blog")
[](https://www.facebook.com/CollectiveCloudPeru "Facebook")
[](https://www.facebook.com/groups/941935432611672/ "Grupo de Facebook")
[](https://twitter.com/collectivecperu "X (Twitter)")
[](https://www.linkedin.com/company/collectivecloudper%C3%BA "LinkedIn")
[](https://www.youtube.com/channel/UCLUm5nYZ7rTv_xHPn30WVzg/videos "YouTube")
[](https://www.twitch.tv/nubecolectivadevs "Twitch")
[](https://www.instagram.com/nube.colectiva/ "Instagram")
[](https://www.pinterest.com/ncolectiva/ "Pinterest")
[](https://github.com/collectivecloudperu "GitHub")
[](https://chat.whatsapp.com/IRFbOAzEkWHDbBjCif9x22 "Grupo de WhatsApp")
[](https://t.me/joinchat/Juq0ExwZcafgDPDHeRLwXQ "Grupo de Telegram")
[](https://discord.gg/bXPrKYY "Discord (Programadores)")
[](https://nubecolectiva.slack.com/ "Slack")
[](https://anchor.fm/nubecolectiva "Spotify for Podcasters")
[](https://open.spotify.com/show/0IhovCtKYqQIHwvNRTvUhl "Podcasts en Spotify")
[](https://soundcloud.com/nube-colectiva/ "Podcasts en SoundCloud")
[](https://apple.co/32W9q7A "Apple Podcasts")
[](https://opencollective.com/nube-colectiva "Open Collective")
[](https://www.threads.net/@nube.colectiva "Threads")
[](https://www.youtube.com/@NubeColectivaDevs/podcasts "YouTube Podcasts")
[](https://music.amazon.com/podcasts/8fdb7ad5-115b-49ce-9832-2ba1aafa2a0a/nube-colectiva "Amazon Music for Podcasters")
[](https://whatsapp.com/channel/0029Va1TzpI72WU03eYrJv1g "Canal de WhatsApp")
[](https://t.me/+hI8z-OCJF-1kZjAx "Canal de Telegram")
[](https://signal.group/#CjQKIGT_kc9GXw47qnPiD3hOsPivVO1BGbxoIzVK2MRvOtAFEhC4rrygB4Y25_PFZmH1n3Iu "Signal")
[](https://bsky.app/profile/nubecolectiva.bsky.social "Bluesky")
[](https://join.skype.com/gCVma53864oY "Skype")
[](https://www.patreon.com/NubeColectiva "Patreon")
[](https://www.reddit.com/r/NubeColectiva/ "Reddit")
[](https://mastodon.social/@nubecolectiva "Mastodon")
[](https://pastebin.com/u/NubeColectiva "Pastebin")
[](https://amzn.to/3x8zMF8 "Amazon (USA)")
[](https://amzn.to/3Vg1jMT "Amazon (España)")
[](https://www.tumblr.com/nubecolectiva "Tumblr")
[](https://www.tiktok.com/@nubecolectiva "TikTok")
[](https://substack.com/@nubecolectiva "Substack")
[](https://kick.com/nubecolectiva "Kick")
[](https://truthsocial.com/@nubecolectiva "Truth")
[](https://es.quora.com/profile/Nube-Colectiva-1 "Quora")
[](https://dev.to/nube_colectiva_nc "DEV")
[](https://nubecolectiva.hashnode.dev/ "Hashnode")
[](https://medium.com/@nubecolectiva "Medium")
[](https://peerlist.io/jrclurita/posts "Peerlist")
[](https://digg.com/@nubecolectiva "Digg")
[](https://hackernoon.com/u/nucole "HackerNoon")
[](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/ "UpScrolled: @juancastro")
[](https://vk.com/nubecolectiva "VK")
[](https://rumble.com/user/NubeColectiva/videos "Rumble")
[](https://nubecolectiva.beehiiv.com/ "beehiiv")
##### Redes Sociales (Digital)
[](https://www.youtube.com/channel/UCR7OdhrbfbIefFgcEiZI2FA/videos "YouTube")
[](https://chat.whatsapp.com/Bl4nFxyRNQQ0w2eJYPj63Z "Grupo de WhatsApp")
[](https://t.me/joinchat/GI4ejITgEDx8C4yJ "Grupo de Telegram")
[](https://discord.com/invite/HKfXjws "Discord (Digital)")
[](https://join.skype.com/hX6yo8f94ZQz "Skype")
[](https://www.twitch.tv/nubecolectivadigital "Twitch")
Cerrar
##### Herramientas
[ Documentaciones Oficiales](https://comunidad.nubecolectiva.com/docs "Documentaciones Oficiales")
[ Flyers de ProgramaciĂłn](https://nubecolectiva.com/comunidad/flyers/ "Flyers de ProgramaciĂłn")
Cerrar
##### 🔥 Todas las CategorĂas
[Accesorios Dev](https://nubecolectiva.com/blog/category/utilidades/accesorios-dev/ "ArtĂculos y Tutoriales de Accesorios Dev") [Agentes de IA](https://nubecolectiva.com/blog/category/inteligencia-artificial/agentes-de-ia/ "ArtĂculos y Tutoriales de Agentes de IA") [Agile](https://nubecolectiva.com/blog/category/devs/agile/ "ArtĂculos y Tutoriales de Agile") [Análisis y Rendimiento](https://nubecolectiva.com/blog/category/movil/analisis-y-rendimiento/ "ArtĂculos y Tutoriales de Análisis y Rendimiento") [analytic](https://nubecolectiva.com/blog/category/analytic/ "ArtĂculos y Tutoriales de analytic") [Android](https://nubecolectiva.com/blog/category/movil/android/ "ArtĂculos y Tutoriales de Android") [Android Studio](https://nubecolectiva.com/blog/category/movil/android/android-studio/ "ArtĂculos y Tutoriales de Android Studio") [Angular](https://nubecolectiva.com/blog/category/frontend/angular-js/ "ArtĂculos y Tutoriales de Angular") [Anuncios](https://nubecolectiva.com/blog/category/anuncios/ "ArtĂculos y Tutoriales de Anuncios") [Apache Cassandra](https://nubecolectiva.com/blog/category/bases-de-datos/apache-cassandra/ "ArtĂculos y Tutoriales de Apache Cassandra") [API REST](https://nubecolectiva.com/blog/category/backend/api-rest/ "ArtĂculos y Tutoriales de API REST") [APIs](https://nubecolectiva.com/blog/category/apis/ "ArtĂculos y Tutoriales de APIs") [Apple​ WWDC](https://nubecolectiva.com/blog/category/eventos-dev/apple-wwdc/ "ArtĂculos y Tutoriales de Apple​ WWDC") [Arduino](https://nubecolectiva.com/blog/category/arduino/ "ArtĂculos y Tutoriales de Arduino") [Arq. de Software](https://nubecolectiva.com/blog/category/arquitectura-de-software/ "ArtĂculos y Tutoriales de Arq. de Software") [Articulos](https://nubecolectiva.com/blog/category/articulos/ "ArtĂculos y Tutoriales de Articulos") [Axios](https://nubecolectiva.com/blog/category/frontend/axios/ "ArtĂculos y Tutoriales de Axios") [Backend](https://nubecolectiva.com/blog/category/backend/ "ArtĂculos y Tutoriales de Backend") [Bases de Datos](https://nubecolectiva.com/blog/category/bases-de-datos/ "ArtĂculos y Tutoriales de Bases de Datos") [Blockchain](https://nubecolectiva.com/blog/category/articulos/blockchain/ "ArtĂculos y Tutoriales de Blockchain") [Bootstrap](https://nubecolectiva.com/blog/category/frontend/bootstrap/ "ArtĂculos y Tutoriales de Bootstrap") [C\#](https://nubecolectiva.com/blog/category/backend/c/ "ArtĂculos y Tutoriales de C#") [C++](https://nubecolectiva.com/blog/category/c-mas/ "ArtĂculos y Tutoriales de C++") [CDNs](https://nubecolectiva.com/blog/category/cdns/ "ArtĂculos y Tutoriales de CDNs") [ChatGPT](https://nubecolectiva.com/blog/category/inteligencia-artificial/chatgpt/ "ArtĂculos y Tutoriales de ChatGPT") [Chrome Dev Tools](https://nubecolectiva.com/blog/category/articulos/dev-tools-google-chrome/ "ArtĂculos y Tutoriales de Chrome Dev Tools") [Ciberseguridad](https://nubecolectiva.com/blog/category/ciberseguridad/ "ArtĂculos y Tutoriales de Ciberseguridad") [Claude AI](https://nubecolectiva.com/blog/category/inteligencia-artificial/claude-ai/ "ArtĂculos y Tutoriales de Claude AI") [Cloud Computing](https://nubecolectiva.com/blog/category/cloud-computing/ "ArtĂculos y Tutoriales de Cloud Computing") [CĂłmo Aprender](https://nubecolectiva.com/blog/category/como-aprender/ "ArtĂculos y Tutoriales de CĂłmo Aprender") [Comunidad](https://nubecolectiva.com/blog/category/comunidad/ "ArtĂculos y Tutoriales de Comunidad") [CSS](https://nubecolectiva.com/blog/category/frontend/css/ "ArtĂculos y Tutoriales de CSS") [DApps](https://nubecolectiva.com/blog/category/dapps/ "ArtĂculos y Tutoriales de DApps") [Dart](https://nubecolectiva.com/blog/category/dart/ "ArtĂculos y Tutoriales de Dart") [Data Mining](https://nubecolectiva.com/blog/category/data-mining/ "ArtĂculos y Tutoriales de Data Mining") [Data Science (Ciencia de Datos)](https://nubecolectiva.com/blog/category/data-science/ "ArtĂculos y Tutoriales de Data Science (Ciencia de Datos)") [DeepSeek](https://nubecolectiva.com/blog/category/inteligencia-artificial/deepseek/ "ArtĂculos y Tutoriales de DeepSeek") [Developers](https://nubecolectiva.com/blog/category/developers/ "ArtĂculos y Tutoriales de Developers") [DevOps](https://nubecolectiva.com/blog/category/devops/ "ArtĂculos y Tutoriales de DevOps") [Devs](https://nubecolectiva.com/blog/category/devs/ "ArtĂculos y Tutoriales de Devs") [Devs Hardware](https://nubecolectiva.com/blog/category/utilidades/devs-hardware/ "ArtĂculos y Tutoriales de Devs Hardware") [Dialogflow](https://nubecolectiva.com/blog/category/inteligencia-artificial/dialogflow/ "ArtĂculos y Tutoriales de Dialogflow") [Django](https://nubecolectiva.com/blog/category/backend/django/ "ArtĂculos y Tutoriales de Django") [Docker](https://nubecolectiva.com/blog/category/docker/ "ArtĂculos y Tutoriales de Docker") [Editores de CĂłdigo](https://nubecolectiva.com/blog/category/devs/editores-de-codigo/ "ArtĂculos y Tutoriales de Editores de CĂłdigo") [Electron JS](https://nubecolectiva.com/blog/category/electron-js/ "ArtĂculos y Tutoriales de Electron JS") [Entretenimiento](https://nubecolectiva.com/blog/category/entretenimiento/ "ArtĂculos y Tutoriales de Entretenimiento") [Ethical Hacking](https://nubecolectiva.com/blog/category/ethical-hacking/ "ArtĂculos y Tutoriales de Ethical Hacking") [Eventos](https://nubecolectiva.com/blog/category/comunidad/eventos/ "ArtĂculos y Tutoriales de Eventos") [Eventos Dev](https://nubecolectiva.com/blog/category/eventos-dev/ "ArtĂculos y Tutoriales de Eventos Dev") [Experimental](https://nubecolectiva.com/blog/category/experimental/ "ArtĂculos y Tutoriales de Experimental") [Firebase](https://nubecolectiva.com/blog/category/firebase/ "ArtĂculos y Tutoriales de Firebase") [Flutter](https://nubecolectiva.com/blog/category/flutter/ "ArtĂculos y Tutoriales de Flutter") [Flyers](https://nubecolectiva.com/blog/category/comunidad/flyers/ "ArtĂculos y Tutoriales de Flyers") [Frontend](https://nubecolectiva.com/blog/category/frontend/ "ArtĂculos y Tutoriales de Frontend") [Game Dev](https://nubecolectiva.com/blog/category/game-dev/ "ArtĂculos y Tutoriales de Game Dev") [Gemini AI](https://nubecolectiva.com/blog/category/inteligencia-artificial/gemini-ai/ "ArtĂculos y Tutoriales de Gemini AI") [Gin](https://nubecolectiva.com/blog/category/backend/gin/ "ArtĂculos y Tutoriales de Gin") [Git](https://nubecolectiva.com/blog/category/articulos/git/ "ArtĂculos y Tutoriales de Git") [GitHub](https://nubecolectiva.com/blog/category/articulos/github/ "ArtĂculos y Tutoriales de GitHub") [GitHub Copilot](https://nubecolectiva.com/blog/category/inteligencia-artificial/github-copilot/ "ArtĂculos y Tutoriales de GitHub Copilot") [GitOps](https://nubecolectiva.com/blog/category/gitops/ "ArtĂculos y Tutoriales de GitOps") [Google IO](https://nubecolectiva.com/blog/category/eventos-dev/google-io/ "ArtĂculos y Tutoriales de Google IO") [GraphQL](https://nubecolectiva.com/blog/category/backend/api-rest/graphql/ "ArtĂculos y Tutoriales de GraphQL") [Grok AI](https://nubecolectiva.com/blog/category/inteligencia-artificial/grok-ai/ "ArtĂculos y Tutoriales de Grok AI") [Hacking Ético](https://nubecolectiva.com/blog/category/ciberseguridad/hacking-etico/ "ArtĂculos y Tutoriales de Hacking Ético") [Herramientas](https://nubecolectiva.com/blog/category/herramientas/ "ArtĂculos y Tutoriales de Herramientas") [HTML 5](https://nubecolectiva.com/blog/category/frontend/html/ "ArtĂculos y Tutoriales de HTML 5") [Inteligencia Artificial](https://nubecolectiva.com/blog/category/inteligencia-artificial/ "ArtĂculos y Tutoriales de Inteligencia Artificial") [Ionic](https://nubecolectiva.com/blog/category/movil/ionic/ "ArtĂculos y Tutoriales de Ionic") [iOS](https://nubecolectiva.com/blog/category/movil/ios/ "ArtĂculos y Tutoriales de iOS") [JAMStack](https://nubecolectiva.com/blog/category/jamstack/ "ArtĂculos y Tutoriales de JAMStack") [Java](https://nubecolectiva.com/blog/category/java/ "ArtĂculos y Tutoriales de Java") [JavaScript](https://nubecolectiva.com/blog/category/frontend/javascript/ "ArtĂculos y Tutoriales de JavaScript") [jQuery](https://nubecolectiva.com/blog/category/frontend/jquery/ "ArtĂculos y Tutoriales de jQuery") [Kotlin](https://nubecolectiva.com/blog/category/movil/android/kotlin/ "ArtĂculos y Tutoriales de Kotlin") [Kubernetes](https://nubecolectiva.com/blog/category/kubernetes/ "ArtĂculos y Tutoriales de Kubernetes") [Laravel](https://nubecolectiva.com/blog/category/backend/laravel/ "ArtĂculos y Tutoriales de Laravel") [Linux](https://nubecolectiva.com/blog/category/linux/ "ArtĂculos y Tutoriales de Linux") [LĂłgica de ProgramaciĂłn](https://nubecolectiva.com/blog/category/devs/logica-de-programacion/ "ArtĂculos y Tutoriales de LĂłgica de ProgramaciĂłn") [Machine Learning](https://nubecolectiva.com/blog/category/machine-learning/ "ArtĂculos y Tutoriales de Machine Learning") [MariaDB](https://nubecolectiva.com/blog/category/bases-de-datos/mariadb/ "ArtĂculos y Tutoriales de MariaDB") [Marketing Digital](https://nubecolectiva.com/blog/category/marketing-digital/ "ArtĂculos y Tutoriales de Marketing Digital") [Material Design](https://nubecolectiva.com/blog/category/frontend/material-design/ "ArtĂculos y Tutoriales de Material Design") [MCP](https://nubecolectiva.com/blog/category/inteligencia-artificial/mcp/ "ArtĂculos y Tutoriales de MCP") [Micro Frontend](https://nubecolectiva.com/blog/category/frontend/micro-frontends/ "ArtĂculos y Tutoriales de Micro Frontend") [MongoDB](https://nubecolectiva.com/blog/category/mongo-db/ "ArtĂculos y Tutoriales de MongoDB") [MĂłvil](https://nubecolectiva.com/blog/category/movil/ "ArtĂculos y Tutoriales de MĂłvil") [MS SQL Server](https://nubecolectiva.com/blog/category/bases-de-datos/ms-sql-server/ "ArtĂculos y Tutoriales de MS SQL Server") [MySQL](https://nubecolectiva.com/blog/category/bases-de-datos/mysql/ "ArtĂculos y Tutoriales de MySQL") [News](https://nubecolectiva.com/blog/category/news/ "ArtĂculos y Tutoriales de News") [NFT](https://nubecolectiva.com/blog/category/nft/ "ArtĂculos y Tutoriales de NFT") [Node JS](https://nubecolectiva.com/blog/category/backend/node-js/ "ArtĂculos y Tutoriales de Node JS") [Novedades](https://nubecolectiva.com/blog/category/articulos/novedades/ "ArtĂculos y Tutoriales de Novedades") [Oracle DB](https://nubecolectiva.com/blog/category/bases-de-datos/oracle-db/ "ArtĂculos y Tutoriales de Oracle DB") [Otros](https://nubecolectiva.com/blog/category/otros/ "ArtĂculos y Tutoriales de Otros") [Pentesting](https://nubecolectiva.com/blog/category/pentesting/ "ArtĂculos y Tutoriales de Pentesting") [PHP](https://nubecolectiva.com/blog/category/backend/php/ "ArtĂculos y Tutoriales de PHP") [PostgreSQL](https://nubecolectiva.com/blog/category/bases-de-datos/postgresql/ "ArtĂculos y Tutoriales de PostgreSQL") [Premium](https://nubecolectiva.com/blog/category/premium/ "ArtĂculos y Tutoriales de Premium") [ProgramaciĂłn](https://nubecolectiva.com/blog/category/programacion/ "ArtĂculos y Tutoriales de ProgramaciĂłn") [Python](https://nubecolectiva.com/blog/category/backend/python/ "ArtĂculos y Tutoriales de Python") [Ranking BD](https://nubecolectiva.com/blog/category/bases-de-datos/ranking-bd/ "ArtĂculos y Tutoriales de Ranking BD") [Ranking Lenguajes](https://nubecolectiva.com/blog/category/ranking-lenguajes-de-programacion/ "ArtĂculos y Tutoriales de Ranking Lenguajes") [Rankings / Tops](https://nubecolectiva.com/blog/category/rankings-tops/ "ArtĂculos y Tutoriales de Rankings / Tops") [Raspberry Pi](https://nubecolectiva.com/blog/category/raspberry-pi/ "ArtĂculos y Tutoriales de Raspberry Pi") [React JS](https://nubecolectiva.com/blog/category/frontend/react-js/ "ArtĂculos y Tutoriales de React JS") [React Native](https://nubecolectiva.com/blog/category/movil/react-native/ "ArtĂculos y Tutoriales de React Native") [Recursos](https://nubecolectiva.com/blog/category/articulos/recursos/ "ArtĂculos y Tutoriales de Recursos") [Redis](https://nubecolectiva.com/blog/category/bases-de-datos/redis/ "ArtĂculos y Tutoriales de Redis") [Redux](https://nubecolectiva.com/blog/category/redux/ "ArtĂculos y Tutoriales de Redux") [Ruby](https://nubecolectiva.com/blog/category/backend/ruby/ "ArtĂculos y Tutoriales de Ruby") [Ruby on Rails](https://nubecolectiva.com/blog/category/backend/ruby-on-rails/ "ArtĂculos y Tutoriales de Ruby on Rails") [Rust](https://nubecolectiva.com/blog/category/backend/rust/ "ArtĂculos y Tutoriales de Rust") [Seguridad](https://nubecolectiva.com/blog/category/seguridad/ "ArtĂculos y Tutoriales de Seguridad") [SEO](https://nubecolectiva.com/blog/category/seo/ "ArtĂculos y Tutoriales de SEO") [Servidores](https://nubecolectiva.com/blog/category/servidores/ "ArtĂculos y Tutoriales de Servidores") [Sin categorĂa](https://nubecolectiva.com/blog/category/sin-categoria/ "ArtĂculos y Tutoriales de Sin categorĂa") [Social Media](https://nubecolectiva.com/blog/category/social-media/ "ArtĂculos y Tutoriales de Social Media") [Socket IO](https://nubecolectiva.com/blog/category/articulos/socket-io/ "ArtĂculos y Tutoriales de Socket IO") [Spring](https://nubecolectiva.com/blog/category/backend/spring/ "ArtĂculos y Tutoriales de Spring") [SQL](https://nubecolectiva.com/blog/category/bases-de-datos/sql/ "ArtĂculos y Tutoriales de SQL") [SQLite](https://nubecolectiva.com/blog/category/bases-de-datos/sqlite/ "ArtĂculos y Tutoriales de SQLite") [Stack Overflow](https://nubecolectiva.com/blog/category/articulos/stack-overflow/ "ArtĂculos y Tutoriales de Stack Overflow") [Svelte](https://nubecolectiva.com/blog/category/frontend/svelte/ "ArtĂculos y Tutoriales de Svelte") [Swift](https://nubecolectiva.com/blog/category/movil/ios/swift/ "ArtĂculos y Tutoriales de Swift") [Tailwind CSS](https://nubecolectiva.com/blog/category/frontend/tailwind-css/ "ArtĂculos y Tutoriales de Tailwind CSS") [TecnologĂa](https://nubecolectiva.com/blog/category/tecnologia/ "ArtĂculos y Tutoriales de TecnologĂa") [Tendencias GitHub](https://nubecolectiva.com/blog/category/articulos/github/tendencias-github/ "ArtĂculos y Tutoriales de Tendencias GitHub") [Terminal y Consolas](https://nubecolectiva.com/blog/category/programacion/terminal-y-consolas/ "ArtĂculos y Tutoriales de Terminal y Consolas") [Testing](https://nubecolectiva.com/blog/category/testing/ "ArtĂculos y Tutoriales de Testing") [Tutoriales](https://nubecolectiva.com/blog/category/tutoriales/ "ArtĂculos y Tutoriales de Tutoriales") [Tutoriales de Go](https://nubecolectiva.com/blog/category/backend/tutoriales-go/ "ArtĂculos y Tutoriales de Tutoriales de Go") [TypeScript](https://nubecolectiva.com/blog/category/frontend/typescript/ "ArtĂculos y Tutoriales de TypeScript") [Ubuntu](https://nubecolectiva.com/blog/category/linux/ubuntu/ "ArtĂculos y Tutoriales de Ubuntu") [UI](https://nubecolectiva.com/blog/category/ui/ "ArtĂculos y Tutoriales de UI") [Unicode](https://nubecolectiva.com/blog/category/unicode/ "ArtĂculos y Tutoriales de Unicode") [Unity](https://nubecolectiva.com/blog/category/game-dev/unity/ "ArtĂculos y Tutoriales de Unity") [Utilidades](https://nubecolectiva.com/blog/category/utilidades/ "ArtĂculos y Tutoriales de Utilidades") [UX](https://nubecolectiva.com/blog/category/ux/ "ArtĂculos y Tutoriales de UX") [Visual Studio Code](https://nubecolectiva.com/blog/category/devs/editores-de-codigo/visual-studio-code/ "ArtĂculos y Tutoriales de Visual Studio Code") [Vite JS](https://nubecolectiva.com/blog/category/frontend/vite-js/ "ArtĂculos y Tutoriales de Vite JS") [VPS](https://nubecolectiva.com/blog/category/servidores/vps/ "ArtĂculos y Tutoriales de VPS") [Vue JS](https://nubecolectiva.com/blog/category/frontend/vue-js/ "ArtĂculos y Tutoriales de Vue JS") [Web 3.0](https://nubecolectiva.com/blog/category/web-3-0/ "ArtĂculos y Tutoriales de Web 3.0") [Wordpress](https://nubecolectiva.com/blog/category/wordpress/ "ArtĂculos y Tutoriales de Wordpress")
Cerrar
##### Newsletter
Cerrar |
| Readable Markdown | En esta página:
- [Partes](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/#toc-1)
- [Deshaciendo Commits](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/#toc-2)
- [Deshaciendo Localmente Commits para evitar Archivos no deseados](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/#toc-3)
- [Deshaciendo Localmente Commits con Mensajes de confirmaciĂłn mal escritos](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/#toc-4)
- [Deshaciendo Localmente Commits para Agregar cambios al Ăşltimo commit](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/#toc-5)
- [Nota (s)](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota/#toc-6)
En la industria actual hay muchos desarrolladores y equipos de trabajo que suelen usar Git y GitHub para gestionar los repositorios de sus proyectos. Git es el sistema de control de versiones (VCS) más popular del mundo actualmente, nos permite hacer un seguimiento de los cambios de archivos basados en texto. Pero a veces como seres humanos podemos cometer errores a la hora de subir cambios a GitHub, en este Post te enseñare como deshacer estos cambios o commits antes de ser enviados, vamos con ello.
## Partes
- Parte 1
- [Parte 2](https://nubecolectiva.com/blog/como-deshacer-commits-en-git-forma-local-y-remota-parte-2-final/) (Final)
[](https://nubecolectiva.com/wp-content/uploads/2021/04/j1.jpg)
Antes de continuar, te invito a leer los siguientes artĂculos para que estĂ©s familiarizado con este tutorial:
- [Que es Git, como utilizarlo y otros detalles](https://nubecolectiva.com/blog/que-es-git-como-utilizarlo-y-otros-detalles/)
- [Conceptos y Técnicas de Git que debes saber antes de unirte a un Equipo de Git – Parte 1](https://nubecolectiva.com/blog/conceptos-y-tecnicas-de-git-que-debes-saber-antes-de-unirte-a-un-equipo-de-git-parte-1/)
- [Que son las Ramas (Branches) en Git, como utilizarlas y otros detalles](https://nubecolectiva.com/blog/que-son-las-ramas-branches-en-git-como-utilizarlas-y-otros-detalles/)
- [Como usar la versiĂłn GUI de Git (No Consola GitBash)](https://nubecolectiva.com/blog/como-usar-la-version-gui-de-git-no-consola-gitbash/)
- Puedes leer más en la [categorĂa Git](https://nubecolectiva.com/blog/category/articulos/git/)
Asimismo te invito a escuchar el **Podcast**: “*5 Consejos para ser un Programador más Productivo*” (No son los clásicos consejos técnicos de programación, si no de rutinas y buenos hábitos cotidianos):
Bien ahora continuemos con el Post: Como Deshacer Commits en Git (Forma Local y Remota) – Parte 1.
Para este Post haré uso de [este repositorio](https://github.com/collectivecloudperu/reloj-numerico-javascript) el cual pertenece al tutorial llamado [Como Crear un Reloj Digital (Numérico) con JavaScript](https://nubecolectiva.com/blog/como-crear-un-reloj-digital-numerico-con-javascript/).
Bueno ahora pasemos a realizar operaciones en el repositorio.
## Deshaciendo Commits
Los commits de Git más fáciles de deshacer son los que aĂşn no han sido enviando a un repositorio remoto como GitHub, Bitbucket, etc. Como usuario propietario, eres libre de hacer cualquier cosa en tu repositorio local. Pero cuando se trata de editar un historial de commits que se envĂan a un repositorio remoto, que por cierto pueden ser usados pĂşblicamente una ves que se encuentran en lĂnea.
Esto significa que estamos poniendo en peligro el trabajo de otros desarrolladores al destruir el historia de git que ya está en uso. Por ello vamos a ver casos de como deshacer commits local y remotamente. En esta primera parte vamos a ver casos de manera local.
### Deshaciendo Localmente Commits para evitar Archivos no deseados
Supongamos que estoy a punto de realizar un commit en mi repositorio local, haciendo uso del comando **git add .** o **git add –all** los cuales agregan todos los cambios de archivo al área de preparaciĂłn en el repositorio. A veces podemos olvidar que algunos archivos no están relacionados con ese commit y no deberĂamos de incluirlos.
Por suerte no es demasiado tarde, ya que podemos hacer uso del comando **git reset** agregando el **nombredelarchivo** que no queremos incluir. Por ejemplo si en mi repositorio local en la PC tengo un archivo llamado **test.rar** y ese archivo no forma parte del proyecto y no lo quiero incluir.
| | |
|---|---|
| 1 2 3 4 5 6 7 8 | /reloj\-numerico\-javascript ├── /css ├── /js ├── index.html ├── README.md ├── test.rar // Omitir este Archivo |
Puedo hacer los pasos correspondientes para subir cambios a mi repositorio remoto, pero luego de ejecutar el comando **git add .** debo de escribir el comando **git reset test.rar** para no incluir ese archivo y luego continuar con los pasos respectivos para subir los cambios.
| | |
|---|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | // Preparo los archivos git add . // No incluir el archivo test.rar git reset test.rar // Preparar el Commit git commit \-m "Cambios" \[main 08c3d2f\] Cambios 1 file changed, 1 insertion(\+), 1 deletion(\-) // Subir los cambios al repositorio remoto (GitHub) git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 366 bytes \| 366\.00 KiB/s, done. Total 3 (delta 1), reused 0 (delta 0), pack\-reused 0 remote: Resolving deltas: 100% (1/1), completed with 1 local object. To https://github.com/collectivecloudperu/reloj-numerico-javascript.git 65006a0..08c3d2f main \-\> main |
Como yo solo hice unos cambios en el archivo **index.html** del proyecto, si voy al repositorio remoto en GitHub, puedo ver que solo hubo cambios en ese archivo y el archivo **test.rar** no se subiĂł.
[](https://nubecolectiva.com/wp-content/uploads/2021/04/j2.jpg)
Bien ahora pasemos a otro caso sobre los mensajes de confirmaciĂłn mal escritos.
### Deshaciendo Localmente Commits con Mensajes de confirmaciĂłn mal escritos
Luego de hacer mi Ăşltimo commit en mi repositorio local, puede pasar que escribĂ mal una palabra en mi mensaje de confirmaciĂłn o commit, por ejemplo escribĂ la palabra *“Cabios”* en lugar de la palabra *“Cambios”*, no es demasiado tarde ya que puedo usar el comando **git commit** con la flag o bandera **–amend**, es decir el comando quedarĂa asĂ **git commit –amend -m “Cambios”**
| | |
|---|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // Palabra 'Cambios' mal escrita git commit \-m "Cabios" \[main 3d88eef\] Cabios 2 files changed, 1 insertion(\+), 1 deletion(\-) create mode 100644 test.rar // Palabra 'Cambios' corregida git commit \--amend \-m "Cambios" \[main 663c8d1\] Cambios Date: Sun Apr 18 23:41:21 2021 \-0500 2 files changed, 1 insertion(\+), 1 deletion(\-) create mode 100644 test.rar |
Entonces si hago todos los pasos correspondientes para subir los cambios (suponiendo que hice cambios solamente en el archivo **index.html**) al repositorio remoto, puedo ver en GitHub que el texto o palabra *Cambios* aparece correctamente.
[](https://nubecolectiva.com/wp-content/uploads/2021/04/edit_j3.jpg)
Ahora pasemos a ver otro caos referente a cambios al Ăşltimo commit
### Deshaciendo Localmente Commits para Agregar cambios al Ăşltimo commit
Supongamos que tenemos un commit que aún no se ha enviado y nos damos cuenta que se necesitan hacer cambios adicionales. Para solucionar esto, primero debemos agregar los archivos modificados al área de preparación mediante el comando **git add** seguido del **nombredelarchivo**.
Por ejemplo tengo un archivo llamado **test.txt** el cual quiero agregar a mi commit a Ăşltimo momento
| | |
|---|---|
| 1 2 3 4 5 6 7 8 | /reloj\-numerico\-javascript ├── /css ├── /js ├── index.html ├── README.md ├── test.txt // Agregue este archivo a ultimo momento |
Antes de que el archivo **test.txt** fuese creado yo ejecute el primer comando que sirve para preparar los cambios, es decir el comando **git add .** y luego que agregue el archivo **test.txt**, entonces allĂ debo de ejecutar el comando **git add test.txt** para incluirlo en el commit.
| | |
|---|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | // Preparo los archivos git add . // Agrego el archivo que fue creado a Ăşltimo momento git add test.txt // Preparo el Commit git commit \-m "Cambios" \[main 5eb3c4c\] Cambios 1 file changed, 0 insertions(\+), 0 deletions(\-) create mode 100644 test.txt // Subo los cambios al repositorio remoto (GitHub) git push Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 8 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 266 bytes \| 266\.00 KiB/s, done. Total 3 (delta 1), reused 1 (delta 0), pack\-reused 0 remote: Resolving deltas: 100% (1/1), completed with 1 local object. To https://github.com/collectivecloudperu/reloj-numerico-javascript.git e05abff..5eb3c4c main \-\> main |
Entonces si voy a mi repositorio remoto en GitHub, puedo ver que se ha incluido el archivo **test.txt** sin problemas.
[](https://nubecolectiva.com/wp-content/uploads/2021/04/j4.jpg)
Bueno hasta aquĂ terminamos con la primera parte de este Post en donde aprendimos a deshacer commits de manera local.
**Ten Paciencia, lo que quiero es que** conozcas bien como deshacer commits y no llenarte el capitulo de mucho contenido porque te puedes marear y no tendrás un óptimo aprendizaje.
## Nota (s)
- En la siguiente parte y Ăşltima, vamos a deshacer commits de repositorios remotos.
- No olvides que debemos usar la TecnologĂa para hacer cosas Buenas por el Mundo.
SĂguenos en nuestras Redes Sociales para que no te pierdas nuestros prĂłximos contenidos. |
| Shard | 174 (laksa) |
| Root Hash | 5501049589212001974 |
| Unparsed URL | com,nubecolectiva!/blog/como-deshacer-commits-en-git-forma-local-y-remota/ s443 |