【发布时间】:2021-05-26 17:01:45
【问题描述】:
GitHub上有一个项目,有2个分支:
upstream/Master
upstream/stable-v1
我分叉了这个项目,所以现在我在我的私人 github 帐户中拥有:
origin/Master
origin/stable-v1
我使用 SSH 将项目下载到我的本地 mac,所以现在在我的 mac 中我有:
Master origin/Master
stable-v1 origin/stable-v1
要同步我的本地和主人的来源:
git checkout master
git fetch --all
git reset --hard upstream/master
git push --force
但是这个同步只有master。我还想同步stable-v1,问题是这个分支需要从upstream/stable-v1同步,而不是从master同步!
当我这样做时:
git checkout stable-v1
git pull --rebase
它告诉我
Already up to date.
Current branch stable-v1 is up to date.
但这不是真的,我落后了 1000 多个提交。
我也尝试过使用 Pycharm VCS 选项https://www.jetbrains.com/help/pycharm/sync-with-a-remote-repository.html#update-git-branch 但没有任何效果。
我认为它尝试从源同步我的本地副本,但我想做的是从上游同步本地副本,然后将其推送到源。 或者有没有办法先同步原点,然后将其拉到本地? 我在这里很困惑。
【问题讨论】:
-
当您执行
git pull时,它将采用默认远程 (origin)。如果upstream包含额外的提交,那么这些不会自动在origin中。 -
我不得不承认,我有点困惑这个问题与您的其他问题How to sync git branch with remote branch 有何不同?基本上是一样的,但是你已经将“merged”切换为“rebase”。我认为前面的答案仍然适用。