Ваша ветвь опережает "origin / master" на 3 коммита

Я получаю следующее при запуске git status

Your branch is ahead of 'origin/master' by 3 commits.

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

8 ответов


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

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

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

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

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


используйте эти 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

жесткий сброс вашей ветви.

наслаждайтесь.


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

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


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

пришлось

git fetch

и это все.


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

git rebase -i origin/master

таким образом я могу видеть коммиты и решить, бросить или подобрать...


Если ваш git говорит, что вы совершаете вперед, то просто Во-первых,

git push origin

чтобы убедиться, что вы нажали все последние работы ur в репо

затем,

git reset --hard origin/master

для сброса и сопоставления с РЕПО


это heppened мне один раз после того, как я объединил запрос pull на Bitbucket.

Я просто должен был сделать

git fetch

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