Pregunta

Puede haber más de una manera de hacer esta pregunta, así que aquí hay una descripción del problema.Estaba trabajando en master y comprometí algunas cosas y luego decidí que quería dejar ese trabajo en espera.Hice una copia de seguridad de algunas confirmaciones y luego me ramifiqué antes de comenzar mi trabajo basura.Prácticamente esto funciona bien, ahora tengo una rama diferente como mi rama principal de desarrollo.Me pregunto cómo podría cambiar las cosas, así que estoy trabajando en master nuevamente pero no tiene mi trabajo basura y dicho trabajo está en una rama diferente.

Algunas formas en que esto se podría preguntar/resolver:¿Cómo cambio el nombre de mi rama maestra a otra cosa y luego cambio el nombre de otra cosa a maestra?¿Cómo hago una copia de seguridad del maestro y luego hago que todas las confirmaciones de las que hice una copia de seguridad estén en una rama diferente?

¡Gracias por todas las respuestas (rápidas)!Están todos bien.

¿Fue útil?

Solución

Además de los otros comentarios, puede que le resulte útil el cambio -m (mover) a git-branch.Podrías cambiar el nombre de tu antiguo maestro a otro y luego cambiar el nombre de tu nueva rama a maestro:

git branch -m master crap_work
git branch -m previous_master master

Otros consejos

Creo que deberías considerar una estrategia de desarrollo diferente para evitar problemas como este.Una que parece funcionar mejor para mí es nunca desarrollar directamente en mi rama maestra.Independientemente de los cambios que esté haciendo, siempre creo una nueva rama para el código nuevo:

git checkout -b topic/topic_name master

Desde allí, puedo enviar los cambios a los repositorios públicos:

git push pu topic/topic_name

o eventualmente simplemente fusionarlo nuevamente con mi rama maestra:

git checkout master && git merge topic/topic_name

Si realmente necesita volver a un punto anterior en el tiempo y establecerlo como su maestro, puede cambiar el nombre de la rama actual a otro y luego consultar una versión anterior para que sea su maestro:

 git branch -m master junk
 git co -b master old_sha1_value

Comienza en master, crea una rama llamada in-progress, luego restablecer master a una confirmación anterior.

$ git branch in-progress
$ git reset --hard HEAD^

Esto es relativamente fácil:

git checkout -b fake_master master # fake_master now points to the same commit as master
git branch -D master               # get rid of incorrect master
git checkout -b master real_master # master now points to your actual master
git checkout master                # optional -- switch on to your master branch

Esto configurará tu maestro en cualquier punto en un solo paso:

git checkout -B master new_point
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top