Git исправлены ошибки, не связанные с быстрой переадресацией. Слияние удаленных изменений
Как решить эту проблему? Я пытаюсь совершить, но я получаю следующую ошибку.
git push origin monty_svm_dev
To [email protected]: ! [rejected] monty_svm_dev -> monty_svm_dev
(non-fast-forward) error: failed to push some refs to
'[email protected]:/mygit.git' To prevent you from losing history,
non-fast-forward updates were rejected Merge the remote changes before
pushing again. See the 'Note about fast-forwards' section of 'git
push --help' for details. [email protected]:~/mypath#
Ответы
Ответ 1
сделать git pull origin monty_svm_dev
первый
Что произошло, так это то, что удаленный компьютер имеет более новые изменения, чем ваша ветка.
Итак, прежде чем вы сможете push
внести изменения, вам нужно сначала получить и объединить изменения на пульте дистанционного управления.
Вы можете сделать это, выполнив git checkout your_branch
, а затем:
git fetch origin your_branch
, а затем
git merge your_branch
или
git pull origin your_branch # fetch and merge in one operation
Если ваша ветка является хозяином или именем вашей ветки (кажется, я думаю, что monty_svm_dev
в вашем случае)
Как только это будет сделано (и все конфликты разрешены), вы можете сделать git push origin monty_svm_dev
Ответ 2
Это в основном потому, что, когда вы
git pull
из ветки, две операции выполняются извлечения и слияния. Теперь, если ваш локальный имеет некоторые изменения, то git не позволит вам нажать его, прежде чем совершать изменения.
Также эта проблема возникает, если на пульте дистанционного управления есть изменения, которые по-прежнему не вытягиваются локально и не сливаются, поэтому вам нужно снова взять тяну, а затем нажать. Ответьте, если он не решит проблему.
Ответ 3
Сделайте Git pull. Затем он приведет к недавним изменениям кода в удаленной ветки в ваш локальный. то вы можете нажать на свои изменения.
Ответ 4
Эта проблема возникает, когда пользователь забывает выдать команду git push
после команды git commit
. При использовании git всегда выполняйте основные шаги.
В идеальном цикле при работе с git всегда проверяйте, что следующие команды git использовались последовательно в следующем порядке:
git pull
git add
git commit
git push
Я лично избегаю большинства выпусков вопросов, связанных с git в стеке, потому что я всегда подсчитываю свою команду git acitivites до указанной выше последовательности.
Я создал аббревиатуру, чтобы убедиться, что я не забываю, я надеюсь, что то же самое может быть полезно читателю, а именно:
pacp (прочитайте его как: pack push где (p = git push, a = git add, ck = git commit, push = git push).
Мой способ запомнить git push, add, commit, pull:
получите пакет push (значение: git пакет, а затем нажмите).
Вкратце запомните "git" пакет, а затем "нажмите".
Решение проблем:
Я хотел бы добавить мои наиболее часто используемые команды восстановления git, которые:
git checkout -- path/to/file/fileName.something #undo changes in file
Приведенное выше отменяет изменения в файле... аналогично может применяться для нескольких файлов, используя * для имени файла, аналогично может применяться к нескольким файлам каталоги, разделенные пробелом.
git reset filename.txt
Вышеупомянутый удаляет файл с этапа... после этой команды мы можем безопасно выполнить git commit и git будет выполнять только те файлы, в которых мы находимся который означает, что файл filname.txt не будет зафиксирован)
git pull origin your_intended_branch
Изменения объединены с последним из вашего_интенсивного_branch, это в основном объединяет изменения, которые вы совершили, но не нажимали. Как только все будет хорошо, просто сделайте push:
git push