Git: 如何赶上dev master?

Git: How to catchup dev to master?

我们对 github 存储库进行了全面检查以设置自动部署,现在我对如何从远程拉取开发分支并使其赶上主分支感到困惑。现在 dev 落后 master 10 次提交。我在下面尝试了以下操作,但我想我创建了一个本地开发分支,拉主,并没有在本地开发和远程开发之间设置 link? 有没有简单的方法来解决这个问题?提前致谢。

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.

想通了。

首先我转为master:

git checkout master

然后删除了本地的dev分支:

git branch -D dev

然后拉下远程分支:

git checkout --track origin/dev

然后从 master 拉取提交:

git pull origin master

然后重新推送给dev:

git push

您的本地 dev 分支不是最新的 dev on origin。您可以通过 运行
更新它 git pull origin dev
或(等价地)
git fetch origin && git merge origin/dev
或(类似但将 dev 设置为上游分支以供将来使用)
git branch --set-upstream-to dev && git pull

在此之后,您可以按照您的尝试合并 master,然后推送到 origin。