tipos tag remove qué practices existen etiquetas crear commits best git branch

tag - qué tipos de etiquetas existen en git



Cambiar los nombres de las sucursales en git (5)

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 comprometido algunas cosas y luego decidí que quería poner ese trabajo en espera. Hice una copia de seguridad de algunas confirmaciones y luego me ramifiqué antes de comenzar mi trabajo de mierda. Prácticamente esto funciona bien, ahora tengo una rama diferente como mi principal rama de desarrollo. Me pregunto cómo podría cambiar las cosas, así que estoy trabajando en master de nuevo, pero no tiene mi trabajo basura y dijo que el trabajo está en una rama diferente.

Algunas maneras en que esto podría ser preguntado / resuelto: ¿Cómo cambio el nombre de mi rama maestra a otra cosa y luego renombro algo más para dominar? ¿Cómo realizo una copia de seguridad del maestro y luego hago que todas las confirmaciones de las que he hecho una copia de seguridad pasen a estar en una rama diferente?

¡Gracias por todas las respuestas (rápidas)! Todos están bien.


Además de los otros comentarios, puede encontrar útil el modificador -m (mover) a git-branch. Puede cambiar el nombre de su antiguo maestro a otra cosa, luego cambie el nombre de su nueva rama a principal:

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


Comience en el master , cree una rama llamada in-progress , luego restablezca el master a una confirmación anterior.

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


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

git checkout -b topic/topic_name master

A partir de ahí, puedo enviar los cambios a los repositorios públicos:

git push pu topic/topic_name

o eventualmente solo fusionarlo nuevamente con mi rama principal:

git checkout master && git merge topic/topic_name

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

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


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 establecerá su maestro en cualquier punto en un solo paso:

git checkout -B master new_point