Git - Переключение ветвей (Windows) и незафиксированные изменения
Вопрос
Мне трудно понять некоторые концепции git / DCVS.Вот что произошло:
- Я создал проект git и импортировал его из репозитория SVN
- Я сделал несколько коммитов
- Я хотел кое с чем поэкспериментировать, поэтому создал ветку под названием константы-обновить
- Я переключился на константы-обновитьветка, переместила некоторые файлы, удалила другие и добавила еще много других
- Я посвятил себя этой отрасли
- Теперь я пытаюсь переключиться на свою главную ветку, используя
git checkout master
- Я получил эту ошибку: ошибка:У вас есть локальные изменения в '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 = истина
И это решит проблему.