Pregunta

Me cuesta entender algunos conceptos de git / DCVS. Esto es lo que pasó:

  1. Creé un proyecto git y lo importé de un repositorio SVN
  2. Hice algunos compromisos
  3. Quería experimentar algo, así que creé una rama llamada constants-update
  4. Cambié a la rama constantes-actualización , moví algunos archivos, eliminé otros y agregué muchos más
  5. Me comprometí con esta rama
  6. Ahora estoy intentando cambiar a mi rama maestra utilizando git checkout master
  7. Recibí este error: error: tienes cambios locales en 'src / groovy / Constants.groovy'; no puede cambiar de rama.

Mi comprensión de DCVS es que puedo cambiar de rama a voluntad, incluso si alguna rama tiene más o menos archivos que las otras, siempre y cuando confirme mis archivos. He intentado comprometerme con git commit -a y cambiar a la rama maestra, 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 confirmar, hago un git status y un montón de archivos siempre aparecen como #modified ... .

¿Esto está relacionado con git / windows o no entiendo bien qué se supone que suceda? Solo quiero cambiar a mi rama maestra sin perder mis cambios en la otra rama.

¿Fue útil?

Solución 3

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

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

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

<*>); # }

Otros consejos

Busque git-stash para cambiar ramas mientras haya cambios sin guardar en la rama actual.

Tienes razón al pensar en 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 archivos se modifican incluso cuando no lo están. No uso git en Windows, pero iba a sugerir el " core.autocrlf " Opción para hacer funcionar el manejo de crlf. Sin embargo, la siguiente entrada de blog indica que esto podría no ser una buena idea: http://weierophinney.net/matthew/archives/191-git-svn-Tip-dont-use-core.autocrlf.html

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

[núcleo] autocrlf = true

Y resolverá el problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top