[英]Git - push after feature branch rebase
我有一個git repo,目前正在Feature分支工作。
我有這樣的事情:
dev: ---1--2--3--
\
fb: --f1
當我在功能分支上工作時,發生了更多對dev的提交,因此我重新建立了基礎,現在我的提交已更改
dev: ---1--2--3--4--5----
\
fb: --f1(another)
所以現在我不能將其推送到遠程功能分支,因為SHA無效。 我不能用力推動 ,因為它被服務器禁止。
那么,在這種情況下正確的工作流程是什么,我該怎么辦?
我的建議是merge remote/dev into local/fb
或delete remote/fb
然后使用git歷史記錄推送local / fb。
撤消變基, 並將remote / dev合並到local / fb中 。
# undo rebase: reset your local/fb with remote/fb $ git checkout fb $ git reset --hard origin/fb # merge and push to remote/fb $ git pull origin dev $ git push origin fb
刪除remote / fb分支,然后使用歷史記錄推送本地/ fb 。
$ git push origin --delete fb # delete remote/fb branch $ git push origin fb
例如,您可以執行以下一項操作:
這取決於公司/團隊的總體工作流程。 但是,他們可能還沒有完全考慮過。
防止在所有分支上強制推送,並要求重新設置要素分支是矛盾的。 兩者都是工作流程的合理組成部分,但不是同一工作流程。
兩種選擇
如果必須在公司內部拒絕強行推入功能分支,那么后果就是您無法為這些功能分支建立基礎。 您將需要執行非快進合並。
如果您的公司希望您重新建立功能分支的基礎,則他們必須使存儲庫接受對這些功能分支的強制推送。 git拒絕只在某些分支而不是所有分支上強制推送是很容易的。
馬虎的解決方法
當然,您每次重新設置基准時都可以刪除功能分支,並且每次都可以創建一個新分支。 這很草率,並且會導致大量不必要的分支。 您的公司/團隊應仔細考慮其工作流程策略,以免發生這種情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.