Git – Cambio de twigs (windows) y cambios sin compromiso

Me está costando entender algunos conceptos de git / DCVS. Esto es lo que sucedió:

  1. Creé un proyecto de git y lo importé de un repository de SVN
  2. Hice algunos commits
  3. Quería experimentar algo, así que creé una twig llamada constantes-actualización
  4. Cambié a la twig de actualización de constantes , moví algunos files, eliminé otros y agregué muchos más
  5. Me comprometí con esta twig
  6. Ahora estoy tratando de cambiar a mi twig principal usando git checkout master
  7. Recibí este error: error: tiene cambios locales en 'src / groovy / Constants.groovy'; no puede cambiar twigs

Mi comprensión de DCVS es que puedo cambiar twigs a voluntad, incluso si alguna twig tiene más o less files que las otras, siempre y cuando confirme mis files. Intenté comprometerme con git commit -a y cambiar a la twig principal, pero tengo el mismo error.

Como nota al margen, cuando cometo git me advierte que LF será reemplazado por CRLF y también me advierte sobre algunos espacios en blanco al final; después de comprometerme hago un git status y un montón de files siempre aparecen como #modified ...

¿Esto está relacionado con git / windows , o no entiendo correctamente lo que se supone que debe suceder? Solo quiero cambiar a mi twig principal sin perder mis cambios en la otra twig.

Tiene razón en su forma de pensar sobre cómo debería funcionar esto.

Sin embargo, parece que git está teniendo problemas con los finales de línea y cree que todos sus files se modifican incluso cuando no lo están. No uso git en Windows, pero iba a sugerir la opción "core.autocrlf" para que funcione el crlf. Sin embargo, la siguiente input de blog indica que esta podría no ser una buena idea: http://weierophinney.net/matthew/archives/191-git-svn-Tip-dont-use-core.autocrlf.html

Resolví el problema al hackear mi gancho precompromiso (comentando estas líneas en .git/hooks/pre-commit con un # ):

 # if (/\s$/) { # bad_line("trailing whitespace", $_); # } 

Buscar git-stash para cambiar twigs mientras hay cambios no guardados en la twig actual.

Simplemente use la siguiente opción en el file .gitconfig que reside en su directory de usuarios.

[core] autocrlf = true

Y resolverá el problema.