簡體   English   中英

從遠程變基分支

[英]rebase branch from remote

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來做到這一點,但沒有任何效果。

我認為它嘗試從源同步我的本地副本,但我想做的是從上游同步本地副本,然后將其推送到源。 或者有沒有辦法先同步原點,然后將其拉到本地? 我在這里很困惑。

我首選的使用遙控器的方法是從不使用pull ,而始終使用fetch后跟merge / rebase pull在幕后做同樣的事情,但我希望能夠在此之前檢查歷史。

從所有遠程獲取,檢查您的分支,重新設置您的分支:

git fetch --all
git checkout stable-v1
git rebase upstream/stable-v1

rebase通常具有--onto AB C的形式,它接受從C到達的所有提交,但不是從B (有人可能會說“從 B 到 C 的所有提交”,但這是不准確的)並將其復制到A

存在速記:

  • rebase --onto AAB == rebase AB
  • rebase A current-branch == rebase A

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM