Застрял репо с помощью stash после нормализации 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
... но без какого-либо эффекта! Файл все еще не был подготовлен для фиксации.
Так как я схожу с ума, я создал новую ветку my-config, добавил и зафиксировалwp-config.php
в него, затем переключился обратно на мастер, удалилwp-config.php
(с помощьюgit rm
) и слил происхождение / мастер ... с успехом!
Так что теперь, когда мастер был обновлен и очищен, я планировал восстановить свою собственную конфигурацию без помощи Git (редактирование файла вручную).
Поскольку я хотел знать, что произошло, я переключился на ветку my-config и попробовал здесь очень простую манипуляцию:
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)
И теперь яя застрял на моей ветке (и планирую ее увидеть, франкофоны поймут;)) так как :,
git stash apply
commit
а такжеcheckout master
выдает ошибку вышеgit stash
создает тайник, но неизменить неустановленные состоянияа такжеgit checkout --
ни один не удаляет неустановленное состояниеЕдинственное, что я могу сейчас сделать - это удалить все эти файлы (используя ОСrm
) чтобы можно было вернуться в главную ветку.
Правдивая история.
Я хотел бы понять, что произошло в основной ветке, затем в ветке my-config, и что привело меня в такие ситуации (я подозреваю, что использование stash на преобразованном файле crlf).
Важные заметки:
Я бегу на Linuxgit core.autocrlf
находится наinput
мой.gitattributes
такой же, как вдело-с линией окончаниями» articleI»м относительно новый для Git (второй день жизни с ним)Когда я сделалstash
на ветке my-config это выложено :(
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
это единственный коммит, который я сделал в ветке my-config)