Por lo que veo, git pull someRemote master
intenta fusionar la rama remota en la mía.¿Puedo decir a git pull que sobrescriba en lugar de fusionar?
¿Hay alguna manera de decir "Descartar por completo mis cosas, simplemente hazme otro clon del control remoto" usando git pull? Todavía quiero guardar mi propio repositorio y mantener su historial, pero quiero tener una copia 1: 1 de la rama principal de algún Remote después de ese comando.
Para aclarar, imagine que hay 2 repositorios, RM y MY. Los números son commits, y esto supone solo una rama (master).
RM1 --- RM2 --- RM3 --- RM4 --- RM5 --- RM6 ... | | +-> MY1 --- MY2 --- MY3 -+-> MY4 --- MY5 --- MY6 ...
Así que empiezo mi propio repositorio como un clon de RM1. Luego desarrollo felizmente y la RM se desarrolla felizmente, pero nunca compartimos nuestro trabajo. Después de MY3 me doy cuenta de que mi rama no es tan buena, pero que RM4 es bastante buena. Así que quiero git pull
RM4 en MY. Sin embargo, no quiero que mis cambios en MY1-3 persistan, quiero que MY4 sea una copia 1: 1 de RM4.
Sin embargo, quiero mantener mi historial, idealmente me gustaría tener un conjunto de cambios entre MY3 y RM4 o entre MY3 y RM2-4.
Aún debería permanecer en mi repositorio.
¿Es esto posible?
(Esto es para proyectos de GitHub donde puedo bifurcar un proyecto, experimento un poco, lo dejo por unas semanas pero luego quiero actualizarlo sin guardar mis cambios. En este momento borro mi tenedor y vuelvo a techar , que no es el mejor enfoque.)
Básicamente tengo que destruir mi sucursal? ¿Hay alguna manera de hacer que Git combine mágicamente los cambios para que parezca una nueva revisión? Me gustaría conservar mi sucursal y su historial, solo quiero hacer que la revisión actual sea una copia 1: 1 de la revisión actual de un control remoto. ¿O eso funcionaría y el nuevo maestro comparte la historia con el viejo maestro? –
@Michael: sus cambios no se habrían ido; todavía existen en la rama 'my_old_master'. Sus objetivos de "copia 1: 1 del control remoto" y "mantener mi historial" son incompatibles si solo desea una rama. Debido a que una revisión SHA1 incluye los SHA1 de todo el historial, una rama no es lo mismo que otra rama a menos que * todo * el historial sea idéntico en ambas ramas. –
para hacer que esto funcione, primero tuve que buscar la rama remota. –