No tengo experiencia con Git, pero hago todo lo posible para acostumbrarme, y hasta ahora solo lo estoy usando para proyectos en los que trabajo solo.
Cuando codifico, hay un enfoque de arriba hacia abajo naturalmente (ya que no puedo saber el futuro), y hay un tema recurrente:
Yo hago un poco de trabajo
Descubro que para convertir mi trabajo en algo "comunicable" necesito hacer otro trabajo.
El otro trabajo merece su propio compromiso.
Por algo comunicable me refiero a algo que se compila o algo que no es un desastre total.
Y por algo que merece su propio compromiso, me refiero a que aprendí que los compromisos deberían hacer una sola cosa.
La forma en que lo resuelvo es engorrosa. Si el otro trabajo está en otro archivo, hago una nueva rama, me comprometo allí y me fusiono. Si el trabajo está en el mismo archivo ... ugh ... Hago una copia local y restablezco el archivo a su estado en HEAD, hago el commit necesario y luego empiezo a restaurar mi trabajo desde la copia. ¿Cómo debería manejar eso? No me imagino que este sea el camino, ¿verdad? No lo supongo porque debe ser algo frecuente para todos (que al menos tampoco conocen el futuro). ¿O tal vez parece que mi flujo de trabajo puede ser defectuoso?
git add -py luego confirmar solo esas partes. Es una técnica muy poderosa y la uso casi todo el tiempo.
git statuspara ver todos los archivos modificados, y hacer dos o más confirmaciones usandogit addarchivos específicos (en lugar degit add --all), y comprometiéndome pieza por pieza.