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