Git - Переключение ветвей (Windows) и незафиксированные изменения

StackOverflow https://stackoverflow.com/questions/257805

  •  06-07-2019
  •  | 
  •  

Вопрос

Мне трудно понять некоторые концепции git / DCVS.Вот что произошло:

  1. Я создал проект git и импортировал его из репозитория SVN
  2. Я сделал несколько коммитов
  3. Я хотел кое с чем поэкспериментировать, поэтому создал ветку под названием константы-обновить
  4. Я переключился на константы-обновитьветка, переместила некоторые файлы, удалила другие и добавила еще много других
  5. Я посвятил себя этой отрасли
  6. Теперь я пытаюсь переключиться на свою главную ветку, используя git checkout master
  7. Я получил эту ошибку: ошибка:У вас есть локальные изменения в 'src/groovy/Constants.groovy';не удается переключить ветки.

Мое понимание DCVS заключается в том, что я могу переключать ветви по своему желанию, даже если в какой-то ветке больше или меньше файлов, чем в других, при условии, что я фиксирую свои файлы.Я пробовал совершать с git commit -a и переключаюсь на главную ветку, но у меня та же ошибка.

В качестве дополнительного примечания, когда я фиксирую, git предупреждает меня, что LF будет заменен CRLF, и также предупреждает меня о некоторых завершающих пробелах;после того, как я совершу, я сделаю git status и куча файлов всегда отображается в виде #modified ....

Связано ли это с git/Windows, или я не правильно понимаю, что это должно произойти?Я просто хочу переключиться на свою главную ветку без потери моих изменений в другой ветви.

Это было полезно?

Решение 3

Я решил эту проблему. "rel =" nofollow noreferrer "> взломав мой хук перед фиксацией (комментируя эти строки в .git / hooks / pre-commit с помощью # ):

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

Я решил эту проблему. "rel =" nofollow noreferrer "> взломав мой хук перед фиксацией (комментируя эти строки в .git / hooks / pre-commit с помощью # ): <*>); # }

Другие советы

Поиск git-stash для смены веток, когда в текущей ветке есть несохраненные изменения.

Вы правы, думая о том, как это должно работать.

Однако, похоже, что у git проблемы с окончаниями строк, и он думает, что все ваши файлы изменены, даже если они не изменены. Я не использую git в Windows, но я собирался предложить «core.autocrlf» возможность сделать работу обработки crlf. Тем не менее, следующая запись в блоге указывает, что это не очень хорошая идея: http://weierophinney.net/matthew/archives/191-git-svn-Tip-dont-use-core.autocrlf.html

Просто используйте следующую опцию в файле .gitconfig, который находится в вашем каталоге users.

[ядро] autocrlf = истина

И это решит проблему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top