簡體   English   中英

反轉git rebase工作流程

[英]reversed git rebase workflow

我有一個master分支和一個staging分支。

現在通常的工作流程是在master中進行新更改,然后從暫存運行

git rebase master

但是,由於我的部署基礎結構的性質,在直接調試到暫存分支時,我不得不提交大量修復程序。 什么是將這些更改重新帶回master的正確方法,以便將來的git rebase可以正常工作。

將登台恢復為master。 您將擁有:

         |
master - o
         |
         x
         |
         x - staging

你要這個:

         |
         o
         |
         x
         |
master - x - staging

您只需要執行一項操作。 將master設置為指向登台指向的同一提交。 有許多種方法可以將master設置為指向與登台相同的提交; 這是一個:

git checkout master
git reset staging

一個簡單的拉力也應該等效。 由於master是暫存的祖先,因此合並暫存將是一種快速的方法,除非您在某處配置了--no-ff ,而我們可以使用--ff-only進行檢測:

git checkout master
git pull --ff-only staging

編輯:如果您不想將提交重新添加到master中,則創建一個新分支,然后使用rebase -i保留僅需要返回到master的提交,如下所示:

git checkout staging
git checkout  -b mypics

屈服

         |
master - o
         |
         y
         |
mypics - x - staging

重新整理mypics,刪除y,創建x':

git rebase -i master
# Drop the lines with commits you don't want to send back to master.

         |
master - o
         | \
         y  x' - mypics
         |
         x - staging

然后,使用master或如上所述,將master設置為指向與mypics相同的提交。 然后刪除近視:

git checkout master
git reset mypics
git branch -D mypics

暫無
暫無

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

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