簡體   English   中英

git rebase不更新分支嗎?

[英]`git rebase` not updating branch?

我有這個:

        master
        |   foo
        |   |
        v   v             bar
A---B---C---D             |
             \            v
              \---E---F---G

我要這個:

        master
        |   foo
        |   |
        v   v         bar
A---B---C---D         |
         \            v
          \---E---F---G

所以認為我需要做:

git checkout bar
git rebase master

但是Git認為:

Current branch bar is up-to-date.

並保留一切。

我需要運行什么才能使Git做到我想要的?

提交D包含在分支bar 一種選擇是進行交互式變基,並從分支bar刪除提交D

  1. git checkout bar
  2. git rebase -i master
  3. 在文本編輯器中刪除提交D
  4. 保存並關閉

只要您在提交D (或包含提交D )上具有標簽或分支(例如foo ),就不應丟失它。 還請記住,如果D之后的提交取決於D更改,那么您將發生沖突。

的版本git rebase ,你正在做,需要所有的分支上提交的bar這是不是已經對master ,並將其寫入到master 這是DF提交,這不是您想要的,因為它不會跳過D提交。 一種解決方案是使用--onto標志:

git checkout bar
git rebase --onto master foo

此版本的rebase將把所有提交放在分支bar而不是在分支foo然后將它們重寫到master 這將准確顯示您想要的bar的歷史記錄。

暫無
暫無

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

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