Во-первых, я знаю несколько аналогично сформулированных вопросов, например:
- Как найти местоположение источника/мастера в git и как его изменить?
- git: ваша ветка впереди по Х совершает
- git: Филиал впереди по Х совершает. Не помогает делать git pull
- статус репо 'git, говорящий, что ветвь опережает начало/мастер. Почему?
Ни один из них (AFAICT) не имеет ответа, соответствующего моей версии этого вопроса.
Моя ситуация:
$ git status
# On branch stable
nothing to commit (working directory clean)
$ git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 857 commits.
В существующих вопросах принятые и поддержанные ответы в основном согласуются с тем, что это означает буквально то, что он говорит... Я впереди, и мне нужно подтолкнуть мои новые коммиты к происхождению/хозяину.
Я знаю, что на самом деле противоположная ситуация верна, что моя локальная ветвь master
находится за удаленным origin/master
и на самом деле мне нужно git pull origin master
, прежде чем выполнять некоторую работу над ней локально. (или, возможно, просто git fetch origin
?)
Мой вопрос: есть ли какая-то причина для сообщения, которое должно быть написано Your branch is ahead of 'origin/master' by 857 commits.
таким образом, что оно буквально имеет смысл?
Потому что, как я понимаю, в данный момент значение противоположно тому, что говорится в сообщении ( "моя ветка" находится за истоком/мастером).
Или это действительно означает: "HEAD удаленной основной ветки впереди вашей локальной ветки начального/основного отслеживания"?
Обновление FWIW Я работаю в команде из полудюжины других разработчиков. Мы все тянем, совершаем и толкаем и т.д. Много раз в день без проблем. У меня здесь нет ошибки... Я просто пытаюсь понять, почему git выражает свое сообщение таким образом - независимо от того, выбрана ли сама формулировка плохо или существует ли какая-то базовая концепция git, которая заставляет их слово это так и я не понимаю правильно.
подробнее
вот что, я думаю, может быть важной частью вывода git config -l
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=https://code.google.com/a/google.com/p/xxxxx/
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.master.mergeoptions=--no-ff