вы можете использовать встроенную функцию list ():
newlist=list(oldlist)
Я думаю, этот код вам поможет.
Вы не можете сливаться с локальными изменениями. Git защищает вас от потери потенциально важных изменений.
У вас есть три варианта:
git commit -m "My message"
git stash
Сделайте слияние, а затем потяните stash: git stash pop
git reset --hard
или git checkout -t -f remote/branch
git checkout filename
В моем случае я выполнил резервное копирование, а затем удалил файл, который Git жаловался, зафиксировал, затем я смог наконец проверить другую ветвь.
Затем я заменил файл, скопированный в содержимое и продолжалось, как будто ничего не произошло.
Вы можете попробовать один из следующих способов:
Для простых изменений попробуйте перезагрузить его сверху, потянув за изменения, например
git pull origin master -r
Таким образом, он будет применять вашу текущую ветвь поверх верхней ветви после извлечения.
Это эквивалентно командам checkout master
, fetch
и rebase origin/master
git.
Это потенциально опасный режим работы. Он переписывает историю, которая не сулит ничего хорошего, когда вы уже опубликовали эту историю. Не используйте эту опцию, если вы не внимательно прочитали git-rebase(1)
.
Если вас не волнует ваши локальные изменения, вы можете переключиться на другую ветвь временную (с усилием) и переключить ее обратно, например
git checkout origin/master -f
git checkout master -f
Если вас не волнует ваши локальные изменения, попробуйте сбросить его в HEAD (исходное состояние), например
git reset HEAD --hard
Если выше не поможет, это могут быть правила в вашем файле нормализации git (.gitattributes
), поэтому лучше совершить то, что он говорит. Или ваша файловая система не поддерживает разрешения, поэтому вам нужно отключить filemode
в вашей конфигурации git.
Связано: Как заставить «git pull & quot; для перезаписывания локальных файлов?
git status
, какие изменения у вас есть после скрепления. Если ни один ответ не помогает, попробуйте добавить новый вопрос.
– kenorb
21 January 2018 в 15:40
Если вы уверены, что в будущем вам не нужны локальные изменения, вы можете выполнить следующие команды:
git reset --hard
git pull
Итак, ситуация, в которой я столкнулась, была следующей:
error: ваши локальные изменения в следующих файлах будут перезаписаны с помощью merge: wp-content / w3tc-config / master.php Пожалуйста, сделайте свои изменения или запишите их, прежде чем вы сможете объединиться.
blockquote>кроме, прямо перед этим, был удален: так на самом деле это:
remote: error : Ваши локальные изменения в следующих файлах будут перезаписаны с помощью merge: some / file.ext Пожалуйста, зафиксируйте свои изменения или запишите их, прежде чем сможете слить.
blockquote>Что происходит (я думаю , а не на 100% положительный), после того, как начался запуск и прикручивание сообщения git post из-за изменений движения в репозитории удаленного сервера, который, теоретически, не должен был быть затронут.
Итак, что я закончил делая трассировку через крюк после приема и обнаруживая это, приходилось идти в удаленный репозиторий на сервере, и произошли изменения (которые не были в моем локальном репозитории, который, по сути, сказал на нем не было изменений, ничего не зафиксировано, обновлено и т. д.). Поэтому, когда на локальном сервере никаких изменений не было, на сервере я сделал
git checkout -- some/file.ext
, а затем локальные и удаленные репозитории фактически соответствовали и Я мог продолжать работать и развертывать. Не совсем уверен, как эта ситуация произошла, хотя пара десятков разработчиков плюс ИТ-изменения могут иметь какое-то отношение к ней.
Попробуйте это
git stash save ""
и попробуйте снова вытащить
git stash
git pull <remote name> <remote branch name> (or) switch branch
git stash apply --index
Первая команда временно сохраняет ваши изменения в stash и удаляет их из рабочего каталога.
Вторая команда переключает ветви.
Третья команда восстанавливает изменения, которые вы сохранили в stash (опция --index
полезна, чтобы убедиться, что поэтапные файлы все еще поставлены).
git reset --hard
, вы также можете удалить ненужные файлы с помощьюgit clean -dfx
– Jo Sprague 29 November 2013 в 15:32git stash
не будет хранить файлы, для которых нет истории. Поэтому, если у вас есть файлы, которые вы еще не добавили, но которые будут перезаписаны или «созданы»; по слиянию, то слияние все равно будет блокироваться. В этой ситуации вы можете использоватьgit stash -u
, чтобы также скрывать незафиксированные файлы. Или вы можете просто удалить их! – joeytwiddle 13 March 2014 в 18:10git clean -dfx
был ужасной идеей. Удалены некоторые .gitignored файлы, которые мне действительно нужны. – ezuk 20 May 2014 в 17:10git reset --hard
, все еще имел несвязанные изменения! – Amedee Van Gasse 11 May 2015 в 11:45