Ваша ветка опережает "происхождение/мастер" на 3 фиксации

При запуске git status

я получаю следующее:
Your branch is ahead of 'origin/master' by 3 commits.

Я прочитал на каком-то другом посту, как исправить это, запустил git pull --rebase, но что именно есть перебаза, я потеряю данные или это простой способ синхронизации с мастером?

Ответы

Ответ 1

Вы получаете это сообщение, потому что вы внесли изменения в свой локальный мастер, и вы не нажимали их на удаленный. У вас есть несколько способов "решить" его, и это обычно зависит от того, как выглядит ваш рабочий процесс:

  • В хорошем рабочем процессе ваша удаленная копия мастера должна быть хорошей, в то время как ваша локальная копия мастера является только копией той, что находится на пульте дистанционного управления. Используя этот рабочий процесс, вы больше никогда не получите это сообщение.
  • Если вы работаете по-другому, и ваши локальные изменения должны быть нажаты то просто git push origin, предполагая, что источником является ваш пульт дистанционного управления.
  • Если ваши локальные изменения плохие, просто удалите их или reset ваш локальный мастер для состояния на удаленном git reset --hard origin/master

Ответ 2

Нечего исправить. Вы просто сделали 3 фиксации и еще не перенесли их в удаленную ветку. Существует несколько вариантов, в зависимости от того, что вы хотите сделать:

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

Вы находитесь в классической ситуации (хотя, как правило, в большинстве рабочих процессов вы не будете уделять много внимания мастеру). Вот что я обычно делаю: просмотрите мои изменения. Возможно, сделайте git rebase --interactive, чтобы сделать некоторые косметические средства на них, отбросьте те, которые сосут, переупорядочивают их, чтобы сделать их более логичными. Теперь переместите их на пульт с помощью git push. Если это отклоняется, потому что моя локальная ветка не обновлена: git pull --rebase повторить мою работу поверх самых последних изменений и git push снова.

Ответ 3

Это сообщение из git означает, что вы сделали три коммита в своем локальном репо и не опубликовали их в репозитории master. Команда для запуска - git push {local branch name} {remote branch name}.

Команда git pullgit pull --rebase) предназначена для другой ситуации, когда есть фиксация на удаленном репо, которого у вас нет в локальном репо. Параметр --rebase означает, что git переместит ваш локальный коммит в сторону, синхронизируется с удаленным репо, а затем попытается применить ваши три фиксации из нового состояния. Он может выйти из строя, если есть конфликт, но тогда вам будет предложено их разрешить. Вы также можете прервать rebase, если вы не знаете, как разрешить конфликты, используя git rebase --abort, и вы вернетесь к состоянию перед запуском git pull --rebase.

Ответ 4

Используйте эти 4 простые команды

Шаг 1: git checkout <branch_name>

Это очевидно, чтобы войти в эту ветвь.

Шаг 2: git pull -s recursive -X theirs

Возьмите удаленные изменения ветки и замените их изменения, если возникнет конфликт. Здесь, если вы делаете git status, вы получите что-то вроде этого , ваша ветка впереди "origin/master" на 3 фиксации.

Шаг 3: git reset --hard origin/<branch_name>

Шаг 4: git fetch

Жесткая reset ваша ветка.

Enjoy.

Ответ 5

Произошел этот вопрос после того, как я объединил запрос на загрузку Bitbucket.

Придется

git fetch

и все.

Ответ 6

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

git rebase -i origin/master

Таким образом, я вижу коммиты и решаю отказаться от нее или выбрать...

Ответ 7

это я прочитал мне однажды после того, как я объединил запрос на загрузку на Bitbucket.

Мне просто нужно было

git fetch

моя проблема была решена! приветствия! надеюсь, что это поможет!