[英]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.