He estado buscando por aquí para buscar una respuesta y parece que puedo estar haciendo suposiciones incorrectas sobre cómo se supone que funcionan las ramas de git.Archivos no rastreados entre sucursales en Git
Tengo mi sucursal master
y he creado una rama de función llamada profiles
donde estoy haciendo un trabajo específico para los perfiles. Mientras trabajaba en perfiles, he cambiado 5 o 6 archivos y he agregado otros 5 o 6 archivos nuevos. Necesitaba volver a la rama master
para corregir un error rápido y noté que todos los archivos nuevos y los archivos modificados estaban allí también. Supongo que esto tiene sentido ya que git no va a eliminar archivos sin seguimiento de la rama master
y traerlos de vuelta a mi rama profiles
ya que, de hecho, no se han rastreado. Pero ¿qué pasa con los cambios a los archivos existentes? ¿Por qué están apareciendo en la rama principal?
¿Cuál es la mejor práctica aquí? Aún no estoy listo para comprometer los cambios a nivel local. ¿Debería esconder todos estos cambios, cambiar a master
, hacer la pequeña corrección, volver a profiles
y luego volver a aplicar el alijo?
Cualquier ayuda es apreciada. Gracias
Tengo una memoria horrible y me gusta usar git para ver dónde estoy en mi trabajo (y con Magit es aún más fácil, y se incorpora a mi flujo de trabajo). Realmente, tu solución tiene más sentido. Simplemente comprométete más a menudo. Solo necesito modificar un poco mi flujo de trabajo. gracias – Clarence
Solo para aclarar, ¿hay alguna diferencia entre 'git reset --soft HEAD ~; git reset' y 'git reset HEAD ^'? Por lo que puedo ver, ambos reiniciaron HEAD y el índice del padre del compromiso "WIP" listo para realizar una confirmación real usando algunos o todos los cambios del árbol de trabajo, pero puede haber perdido una sutileza. –
@Charles Bailey: "--soft no toca el archivo de índice ni el árbol de trabajo en absoluto, pero requiere que estén en buen estado. Esto deja todos los archivos modificados" Se deben confirmar los cambios ", ya que el estado de git pondría eso." si usa "git reset HEAD ^" no obtendrá este fatal: no se puede hacer un reinicio suave en el medio de una fusión. – maletin