Я получаю следующее при запуске git status
Your branch is ahead of 'origin/master' by 3 commits.
В другом посте я читал, что способ исправить это - запустить, git pull --rebase
но что именно представляет собой rebase, я потеряю данные или это простой способ синхронизации с master?
git
git-rebase
FluxEngine
источник
источник
Ответы:
Вы получаете это сообщение, потому что вы внесли изменения в свой локальный мастер и не отправили их на удаленный компьютер. У вас есть несколько способов «решить» это, и обычно это зависит от того, как выглядит ваш рабочий процесс:
git push origin
предполагайте, что ваш удаленный источникgit reset --hard origin/master
источник
git diff master origin/master
(то есть.git diff local remote
) , Чтобы увидеть изменения , которые вы будете извлекатьgit push origin master:branch
которого вернулоEverything up-to-date
, после чего сообщение о том, что x коммитов впереди, ушло.Там нет ничего, чтобы исправить. Вы просто сделали 3 коммита и еще не перенесли их в удаленную ветку. Есть несколько вариантов, в зависимости от того, что вы хотите сделать:
git push
: перенести ваши изменения на пульт (это может быть отклонено, если уже есть другие изменения на пульте)git pull
: получить изменения (если они есть) с пульта и объединить их с вашими изменениямиgit pull --rebase
: как указано выше, но попробуйте повторить ваши коммиты поверх удаленных измененийВы находитесь в классической ситуации (хотя обычно в большинстве рабочих процессов вы не много делаете для мастера). Вот что я обычно делаю: Просмотрите мои изменения. Может быть,
git rebase --interactive
сделать косметику на них, отбросить те, которые сосут, изменить их порядок, чтобы сделать их более логичными. Теперь перенесите их на пульт сgit push
. Если это будет отклонено, потому что мое местное отделение не обновлено:git pull --rebase
переделать мою работу поверх последних изменений и ещеgit push
раз.источник
your team lead merged to master
? Разве вы не говорили, что уже подталкивали к мастеру? Что содержит дополнительный коммит? Попробуйтеgit diff origin/master
посмотреть, чем ваша локальная ветка отличается от удаленной.Используйте эти 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
Хард ресет вашей ветки.
Наслаждаться.
источник
Наткнулся на эту проблему после того, как я объединил запрос на получение Bitbucket.
Должен сделать
и это было все.
источник
Обычно, если мне нужно проверить, какие коммиты отличаются от мастера, который я делаю:
Таким образом, я вижу коммиты и решаю сбросить их или выбрать ...
источник
git diff ...
магики не сработали. Когда я сделал это, он дал мнеnoop
единственный коммит, и когда я принял его, теперь моя ветвь синхронизирована с origin / master. Таким образом, кажется, что коммиты diff от origin / master были фактически ничем.Это сообщение
git
означает, что вы сделали три коммита в своем локальном репо и не опубликовали их вmaster
репозитории. Команда для запуска этоgit push {local branch name} {remote branch name}
.Команда
git pull
(иgit pull --rebase
) предназначена для другой ситуации, когда в удаленном репо есть коммит, которого нет в вашем локальном репо. Эта--rebase
опция означает, чтоgit
вы отодвинете локальный коммит в сторону, синхронизируете его с удаленным репо, а затем попытаетесь применить ваш три коммита из нового состояния. Он может потерпеть неудачу, если есть конфликт, но тогда вам будет предложено разрешить их. Вы также можете прервать операцию,rebase
если не знаете, как разрешить конфликты с помощью команды,git rebase --abort
и вы вернетесь в состояние перед запускомgit pull --rebase
.источник
Если ваш мерзавец говорит, что вы впереди, тогда просто сначала
Чтобы убедиться, что вы продвинули всю свою последнюю работу в репо
Затем,
Сбросить и сопоставить с репо
источник
Это случилось со мной однажды после того, как я объединил запрос на удаление данных на Bitbucket.
Я просто должен был сделать:
git fetch
Моя проблема была решена. Надеюсь, это поможет!!!
источник
наконец-то:
источник