У меня есть gitattributes
я добавил к нему gitattributes
и работал над ним нормально. Я синхронизирую его через Dropbox с другой машиной. Когда я открыл его на другой машине, в неразмеченной области внезапно появилась куча файлов как общая разница (весь файл - огромная разница, что означает разницу в концах строк) - мои окончания crlf в основном .* text=auto
и я работаю над окна. Я попытался спрятать изменения, сбросить ветку и т.д. В конце концов я решил зафиксировать файлы, а затем сделал некоторые другие коммиты, которые я хотел переупорядочить (и сквош) до фиксации конца строки. Когда я пытаюсь перебазировать, я получаю:
error: Your local changes to the following files would be overwritten by merge
# those same files
Please, commit your changes or stash them before you can merge.
Aborting
Could not apply 89b25b81fff1a1e7893319e123aaaca9c4162a95... <commit message>
Конечно заначка не работает
Это ошибка?
Связанные с:
- Как исправить проблемы с окончанием строки после перехода с SVN на git? (да, мой клон git-svn, но я не думаю, что это действительно важно)
- Не могу отменить изменения в Git (да, и я хочу знать почему)
- мерзавец думает, что файлы изменились
- Может кто-нибудь объяснить мне, в чем отличие git diff?
РЕДАКТИРОВАТЬ Ничего общего с машинами - на той же машине некоторые (...) операции просто делают эти файлы (они находятся в .gitattributes
виде текста) в разделе "изменено". Единственный обходной путь, который, кажется, существует:
git rm --cached -r .
git reset --hard
ИСПОЛЬЗУЙТЕ ВНИМАТЕЛЬНО
РЕДАКТИРОВАТЬ: взломать выше перешел в псевдоним статуса:
[alias]
crlf = !git rm -r . --cached -q && git reset --hard
ОБНОВЛЕНИЕ 2015.09.30: У меня есть git-репозиторий в разделе NTFS, который я использую из Windows 7 и Arch Linux в среде двойной загрузки. Когда я закрываю окна и загружаюсь в arch, два файла (html) отображаются как общие различия (различия в конце строки). Вышеупомянутый обходной путь не работает - если вы не примените его несколько раз, обновляя графический интерфейс между...
Мои .gitattributes
:
* text=auto
*.py text diff=python
*.html text
.project text
*.pkl -text
# M$ files
*.bat text eol=crlf
# UNIX files
**/generate_second_post text eol=lf
# git files - have them with LF, as I edit them via the shell (echo etc)
*.gitignore text eol=lf
*.gitattributes text eol=lf
NB: linux позволяет мне фиксировать, переключать ветки и т.д., Но не позволяет перебазировать - плюс эти различия всегда появляются в gitk/git gui.
2018/12/14 перешел на Mac, и мой обходной путь больше не работает. Я отправил сообщение в список рассылки git: https://marc.info/?l=git&m=154482149623324&w=2.
Надеюсь, это привлечет внимание
$ git --version
git version 2.19.2