¿Cómo sincronizar un fork con el repositorio original? Trucos de Git
ฝัง
- เผยแพร่เมื่อ 4 ก.พ. 2025
- ¿Tienes un fork de un repositorio y quieres sincronizarlo con el repositorio original? ¡Te enseño dos formas de lograrlo! La fácil y la PRO 😎.
▶ No te pierdas más directos en: / midudev
Muchísimas gracias. Justo lo que me hacía falta. Nada más pueda me compro tu libro. Un saludo
Trabajabamos asi en una org, y el repo principal era donde se mergeaban luego los cambios de los equipos, el problema es que luego querian solo tal cambio puntual y no el desarrollo total, y alguien trajo ese perverso comando cherry pick, que puede ser bueno, pero luego te haces un gran lio. Saludos midudev
Eres un fenómeno
La oscura magia detras de tener diferentes fetch y push repos origin, es por la minihistoria siguiente....
TL;DR; Basicamente es una epopeya luchando con ficheros enormes, y eliminando su existencia de toda la linea temporal ,y crear asi un gitpoint (flashpoint) con realidades alternativas.
Hace poco tuve que migrar un repositorio entero de Git a BitBucket (Servidores privados), y habia limitaciones en el servidor para hacer upstreams de mas de un tamaño de MB (Igual 50MB).
Para poder subirlo (obviamente no se puede modificar nada en servidor), tuve que utilizar una herramienta, para modificar el historico completo del Git, (algo almacenado que hay dentro de la carpeta .git...), y esto se hace primero con el git fetch, con un fetch origin del server del Git, para no descargar los objetos del git reales (osea los ficheros). Y despues con la herramienta magica (filter-repo) para eliminar el fichero X que estuviera y que pesara mas de X MB.
Asi se modifica tooodo el historico, nunca jamas existio ese fichero, y entonces, es cuando el fetch pertenece al antiguo repositorio, y el push pertenence al nuevo, de esta forma puedes obtener los objetos del antiguo y subirlo con git push origin, al nuevo repo.
Y esa es la oscura razon de porque el git fetch y git push pueden ser diferentes, para migrar repos.
Este video me ha motivado a comprar tu libre donde lo consigo bro :D
N
.
Iván a
Nmms te dejó en visto cracksjjs ya lo conseguiste ? donde??
Tengo una duda al hacer git pull origin main, lo que sucede es que se actualiza en la rama main el proyecto original del repositorio que copie?. Es posible que yo copie un repositorio y vaya en una rama trabajando sobre lo que ya hay, y en otra rama ir actualizando las actualizaciones del forkeado de la rama original?
Bajo el escenario terminando el video, ¿Se podría contribuir directamente a upstream sin pasar por un PR?
Sin permisos, no, imposible. Si tienes permisos de push en el upstream, claro.
me sirvió gracias!
Buen video
hola amigo, como se hace para hacer merge de una fork? gracias
hola bro espero que te encuentres bien , oye soy nuevo en esto de github , tengo una duda: creé un repositorio pero no puedo hacer click para crear un fork. porque pasará eso? un saludo y gracias
tengo entendido que no puedes forkear un repositorio que te pertenece porque ya eres el propietario. Si no me equivoco, el término “fork” se utiliza para contribuir o hacer una copia del repositorio de otros
Es verdad que los commits que haces de un fork no se ven en tu perfil ?
Asi es, y no se si ello tiene una ventaja o desventaja
mis dos centavos... para no arrastrar tus merges si no usas algún branch workflow y sin borrar el fork
git fetch --all
git checkout main
git reset --hard upstream/main
git push origin --force
Buenaaaa