Git: Как поймать разработчика, чтобы освоить? - PullRequest
0 голосов
/ 12 февраля 2020

Мы сделали капитальный ремонт в нашем репозитории github, чтобы настроить автоматическое развертывание, и теперь я запутался в том, как извлечь ветку dev с удаленного компьютера и заставить ее справиться с master. Сейчас dev на 10 коммитов позади мастера. Я попробовал следующее ниже, но я думаю, что создал локальную ветку dev, вытащил master и не установил связь между dev local и dev remote? Есть ли простой способ это исправить? Спасибо заранее.

Master and Dev in Github

git checkout dev
# Already on 'dev'
git fetch origin
git merge origin/master
# Already up to date.
git status
# On branch dev
# nothing to commit, working tree clean
git pull origin master
# From github.com:SpectrumReach/AnomalyDetection
# * branch            master     -> FETCH_HEAD
# Already up to date.
git push
# fatal: The current branch dev has no upstream branch.
# To push the current branch and set the remote as upstream, use
# 
#    git push --set-upstream origin dev
#
git push --set-upstream origin dev
#
# To github.com:SpectrumReach/AnomalyDetection.git
# ! [rejected]        dev -> dev (non-fast-forward)
# error: failed to push some refs to 'git@github.com:SpectrumReach/AnomalyDetection.git'
# hint: Updates were rejected because the tip of your current branch is behind
# hint: its remote counterpart. Integrate the remote changes (e.g.
# hint: 'git pull ...') before pushing again.
# hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Ответы [ 2 ]

3 голосов
/ 12 февраля 2020

Ваш местный филиал dev не обновился до источника dev. Вы могли бы обновить его, запустив
git pull origin dev
или (эквивалентно)
git fetch origin && git merge origin/dev
или (аналогично, но установив dev в качестве восходящей ветви для будущего использования)
git branch --set-upstream-to dev && git pull

После этого вы можете объединить мастера, как вы пытались, и затем pu sh в начало координат.

0 голосов
/ 12 февраля 2020

Разобрался.

Сначала я переключился на master:

git checkout master

Затем удалил локальную ветку dev:

git branch -D dev

Затем вытащил удаленную ветку :

git checkout --track origin/dev

Затем вытащил коммиты из мастера:

git pull origin master

Затем снова отправил в dev:

git push

Now dev is 8 commits ahead of master

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...