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