У меня есть свое местное репо в состоянии, которое запрещает мне совершать, хранить, проверять другую ветку или даже отбрасывать изменения. Поэтому я просто застрял.Застрял репо, используя тайник после нормализации crlf?
Я попытаюсь описать, какие шаги привели меня к этой ситуации, насколько я помню.
Пожалуйста, садитесь.
А, не так давно, на другом компьютере, далеко, далеко ... Иным DEV нормализуется CRLF в проекте в соответствии с: https://help.github.com/articles/dealing-with-line-endings
В то время (вы знаете, скорость света ...) Я сделал некоторые изменения локально, совершил и потянул.
Когда я вытащил Git сказал:
error: Your local changes to the following files would be overwritten by merge:
wp-config.php
wp-config.php
был ранее удален из индекса, используя git update-index --assume-unchanged wp-config.php
с момента своего файла шаблона конфигурации, адаптированной к каждой локальной среде.
Базовый шаблон может быть изменен. Ничего удивительного. Вот то, что я планировал:
- переиндексации
wp-config.php
stash
мой собственный конфиг меняетpull origin master
stash apply
мой конфиг назад
Дела пошли не так в шаге 3. git pull origin master
еще поднял ошибку выше, как если бы тень была неэффективной.
git status
сказал, что wp-config.php
имеет изменения, не поставленные для фиксации. Меня это немного удивило.
Поскольку я спрятал свои изменения, я побежал git checkout -- wp-config.php
... но без всякого эффекта! Файл не был поставлен для фиксации.
Поскольку я становился с умом, я создал новый филиал мою-конфигурацию, добавлен и совершил wp-config.php
в него, а затем переключается обратно на мастер, удалено wp-config.php
(с использованием git rm
) и слился происхождение/мастер ... с успехом!
Итак, теперь, когда мастер был в курсе и чист, я планировал восстановить свою собственную конфигурацию без помощи Git (редактирование файла вручную).
Так как я хотел бы знать, что случилось, я переключился на мою-конфигурации ветви, и пытался здесь очень простые манипуляции:
git stash
git stash apply
И угадайте, что?stash apply
не удалось, говоря:
error: Your local changes to the following files would be overwritten by merge:
wordpress/license.txt
wordpress/readme.html
...
(all the files that where modified by the crlf conversion)
А теперь я застрял на моей ветке (и планируют распилить его, Francophones поймет;)), так как:
git stash apply
,commit
иcheckout master
дает вышеуказанную ошибкуgit stash
производит запись копить, но не меняет unstaged штатов- и
git checkout -- <file>
ни удаляет unstaged состояния
Единственное, что я могу сделать сейчас, это удалить все эти файлы (используя ОС rm
), чтобы иметь возможность вернуться к главной ветке.
Настоящая история.
Мне очень хотелось бы узнать, что произошло на главной ветке, а затем в ветке my-config, и что привело меня в такие ситуации (я подозреваю, что я использовал stash для crlf преобразованного файла).
Важные примечания:
- Я бегу на Linux
git core.autocrlf
наinput
- мой
.gitattributes
такой же, как тот, в "дело-с-линейных окончаний" статьи - Я относительно новичок в Git (2-й день жизни с этим)
W курица я stash
на моем-конфигурации ответвлении outputed:
warning: CRLF will be replaced by LF in wordpress/license.txt.
The file will have its original line endings in your working directory.
... (one for each crlf converted file) ...
Saved working directory and index state WIP on my-config: dbf65ad my config -- should not be pushed
HEAD is now at dbf65ad my config -- should not be pushed
(dbf65ad
это только поручаем я сделал на моем-конфигурации филиал)
'git clean' удалит все необработанные файлы. Я думаю, что незатребованные файлы не имеют ничего общего с моей проблемой. Более того, у меня есть некоторые личные вещи, которых я не видел, я бы пожалел об удалении ... во всяком случае, сработал «git reset -hard». Но это не ценное решение, так как если бы у меня были важные локальные модификации, я бы их потерял (я знаю, что могу получить их с git fsck, но определенно не чистым). – Pierre
Это работало для меня, когда другие рецепты не удались. Благодарю. –