Git, загружающий обновленный код из битбакет в цифровой океан [дубликат]

вы можете использовать встроенную функцию list ():

newlist=list(oldlist)

Я думаю, этот код вам поможет.

536
задан abatishchev 30 September 2014 в 04:47
поделиться

9 ответов

Вы не можете сливаться с локальными изменениями. Git защищает вас от потери потенциально важных изменений.

У вас есть три варианта:

  • Зафиксировать изменение с помощью

    git commit -m "My message"
    
  • Stash it.

    Stashing действует как стек, где вы можете нажимать изменения, и вы выставляете их в обратном порядке. Чтобы запрограммировать, введите
    git stash
    
    Сделайте слияние, а затем потяните stash:
    git stash pop
    
  • Отмените локальные изменения

    с помощью git reset --hard или git checkout -t -f remote/branch

    Или : Отменить локальные изменения для определенного файла

    с помощью git checkout filename
913
ответ дан Toby Speight 18 August 2018 в 10:13
поделиться
  • 1
    Вы также можете отменить локальные изменения для определенного файла, выполнив: git checkout имя_файла – ckb 1 April 2013 в 17:49
  • 2
    Благодарю. Я бы добавил к этому, если вы git reset --hard, вы также можете удалить ненужные файлы с помощью git clean -dfx – Jo Sprague 29 November 2013 в 15:32
  • 3
    По умолчанию git stash не будет хранить файлы, для которых нет истории. Поэтому, если у вас есть файлы, которые вы еще не добавили, но которые будут перезаписаны или «созданы»; по слиянию, то слияние все равно будет блокироваться. В этой ситуации вы можете использовать git stash -u, чтобы также скрывать незафиксированные файлы. Или вы можете просто удалить их! – joeytwiddle 13 March 2014 в 18:10
  • 4
    бег git clean -dfx был ужасной идеей. Удалены некоторые .gitignored файлы, которые мне действительно нужны. – ezuk 20 May 2014 в 17:10
  • 5
    Я столкнулся с ситуацией, когда пользователь, выполнив git reset --hard, все еще имел несвязанные изменения! – Amedee Van Gasse 11 May 2015 в 11:45

В моем случае я выполнил резервное копирование, а затем удалил файл, который Git жаловался, зафиксировал, затем я смог наконец проверить другую ветвь.

Затем я заменил файл, скопированный в содержимое и продолжалось, как будто ничего не произошло.

0
ответ дан CodyBugstein 18 August 2018 в 10:13
поделиться

Вы можете попробовать один из следующих способов:

rebase

Для простых изменений попробуйте перезагрузить его сверху, потянув за изменения, например

git pull origin master -r

Таким образом, он будет применять вашу текущую ветвь поверх верхней ветви после извлечения.

Это эквивалентно командам checkout master, fetch и rebase origin/master git.

< blockquote>

Это потенциально опасный режим работы. Он переписывает историю, которая не сулит ничего хорошего, когда вы уже опубликовали эту историю. Не используйте эту опцию, если вы не внимательно прочитали git-rebase(1) .


checkout

Если вас не волнует ваши локальные изменения, вы можете переключиться на другую ветвь временную (с усилием) и переключить ее обратно, например

git checkout origin/master -f
git checkout master -f

reset

Если вас не волнует ваши локальные изменения, попробуйте сбросить его в HEAD (исходное состояние), например

git reset HEAD --hard

Если выше не поможет, это могут быть правила в вашем файле нормализации git (.gitattributes), поэтому лучше совершить то, что он говорит. Или ваша файловая система не поддерживает разрешения, поэтому вам нужно отключить filemode в вашей конфигурации git.

Связано: Как заставить «git pull & quot; для перезаписывания локальных файлов?

17
ответ дан Community 18 August 2018 в 10:13
поделиться
  • 1
    Dosn't work: Я получаю все те же сообщения, что и «сперва ваши изменения в первую очередь». Когда я печатаю & quot; git stash & quot; и затем "git pull" - & GT; «ошибка: у вас есть несохраненные изменения .. сначала сделайте первый штамп». Короткие, прежде чем уничтожить мой компьютер – trinity420 21 January 2018 в 15:19
  • 2
    @ trinity420 Могут ли быть ваши права доступа к файлам, отметьте git status, какие изменения у вас есть после скрепления. Если ни один ответ не помогает, попробуйте добавить новый вопрос. – kenorb 21 January 2018 в 15:40
  • 3
    спасибо, но моя проблема решена, попробовала все здесь, ничего не работало, затем щелкнула и «совершить изменения». & Quot; слияние & Quot; в PHPStorm, а затем я развязал изменения, и он сработал. – trinity420 21 January 2018 в 16:52

Если вы уверены, что в будущем вам не нужны локальные изменения, вы можете выполнить следующие команды:

git reset --hard 
git pull
-2
ответ дан Lonely Neuron 18 August 2018 в 10:13
поделиться

Итак, ситуация, в которой я столкнулась, была следующей:

error: ваши локальные изменения в следующих файлах будут перезаписаны с помощью merge: wp-content / w3tc-config / master.php Пожалуйста, сделайте свои изменения или запишите их, прежде чем вы сможете объединиться.

кроме, прямо перед этим, был удален: так на самом деле это:

remote: error : Ваши локальные изменения в следующих файлах будут перезаписаны с помощью merge: some / file.ext Пожалуйста, зафиксируйте свои изменения или запишите их, прежде чем сможете слить.

Что происходит (я думаю , а не на 100% положительный), после того, как начался запуск и прикручивание сообщения git post из-за изменений движения в репозитории удаленного сервера, который, теоретически, не должен был быть затронут.

Итак, что я закончил делая трассировку через крюк после приема и обнаруживая это, приходилось идти в удаленный репозиторий на сервере, и произошли изменения (которые не были в моем локальном репозитории, который, по сути, сказал на нем не было изменений, ничего не зафиксировано, обновлено и т. д.). Поэтому, когда на локальном сервере никаких изменений не было, на сервере я сделал git checkout -- some/file.ext, а затем локальные и удаленные репозитории фактически соответствовали и Я мог продолжать работать и развертывать. Не совсем уверен, как эта ситуация произошла, хотя пара десятков разработчиков плюс ИТ-изменения могут иметь какое-то отношение к ней.

10
ответ дан Mike 18 August 2018 в 10:13
поделиться
  • 1
    Это вопрос или ответ? – stdcall 29 November 2013 в 18:54
  • 2
    @stdcall - Немного обоим. Когда я столкнулся с этой ситуацией, как описано в вопросе, это то, что я должен был сделать, чтобы исправить это. Это определенно не нормальное решение git, и из этого вопроса кажется, что это может быть одна и та же ненормальная ситуация (т. Е. Изменения конфигурации на сервере, но локаль не имеет никаких изменений). Если у кого-то есть больше идеи о том, почему (или как) это произошло, я бы приветствовал любое понимание. – Mike 2 December 2013 в 20:27

Попробуйте это

git stash save ""

и попробуйте снова вытащить

5
ответ дан Mr Nobody 18 August 2018 в 10:13
поделиться

Запрос на фиксацию до вытягивания

  • git stash
  • git pull origin & lt; & lt; branchname >>

При необходимости:

  • git stash apply
0
ответ дан Rahul Mankar 18 August 2018 в 10:13
поделиться
git stash
git pull <remote name> <remote branch name> (or) switch branch
git stash apply --index

Первая команда временно сохраняет ваши изменения в stash и удаляет их из рабочего каталога.

Вторая команда переключает ветви.

Третья команда восстанавливает изменения, которые вы сохранили в stash (опция --index полезна, чтобы убедиться, что поэтапные файлы все еще поставлены).

51
ответ дан SOLO 18 August 2018 в 10:13
поделиться
0
ответ дан Dark Matter 30 October 2018 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: