Ваша ветвь опережает "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 pull
(и git 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
моя проблема была решена! ура ! надеюсь, это поможет!