Подтвердить что ты не робот

Git окончания строки - не может быть нажата, reset и теперь не может пересобираться по завершению фиктивных строк

У меня есть 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>

Конечно заначка не работает

Это ошибка?

Связанные с:

РЕДАКТИРОВАТЬ Ничего общего с машинами - на той же машине некоторые (...) операции просто делают эти файлы (они находятся в .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
4b9b3361

Ответ 1

Сегодня мы столкнулись с этой проблемой, когда проблема возникла из-за некоторых связанных с CRLF проблем, связанных с недавно добавленным файлом .gitattributes с одной строкой * text=auto. Когда вы пересобираете или создаете новую ветку, указанный файл будет следовать за вами и разрушать любые изменения, которые произошли после этого, и препятствовать тому, чтобы вы покинули эту ветку, не совершив ее сначала.

Первоначально мы исправили это, проверив временную ветвь, возвращая файл обратно в состояние разумного состояния (до модификации), совершая и затем перестраивая всю ветвь назад на самую старую фиксацию, чтобы сделать ее похожей на master. Это сработало некоторое время, но после этого появился аналогичный файл, и то же исправление не сработало снова.

То, с чем мы в конечном итоге ходили, было похоже на то, что в его обновлении было открыто. Одна строка внутри .git/info/attributes с file-to-remove -text, похоже, смягчает проблему. Я говорю, что смягчить, потому что я не уверен, есть ли какие-либо негативные последствия для этого, это было также для одного файла, поэтому может не работать, если вообще.

Ответ 2

Вы пробовали это?

git add -u .
git reset

Ответ 4

Та же проблема здесь, я использую Win7, sourceTree v3.0.9, git v1.9.5

В корне репозитория, когда у файла.gitattribute есть text = auto, он показывает много локальных изменений файла в конце строки и мешает мне что-либо делать. После того, как я установил text = crlf, все локальные изменения исчезли.

Ранее я пытался добавить "[core] autocrlf = false" в файл конфигурации, но это не помогло.

Обновлено 06/06/2018: Мой SourceTree использовал встроенный git со старой версией, просто обновите его в SourceTree, и теперь все работает с "text = auto" в.gitattributes