簡體   English   中英

如何重置推送到git然后與另一個分支合並的更改?

[英]How to reset the changes that were pushed to git and then merged with another branch?

我錯誤地對git進行了一些更改。 然后將這些更改與另一個分支合並。 由於合並,我無法重置初始分支中的更改。

我應該如何重置被錯誤推送的更改?

您可能會考慮恢復到良好狀態並推送可修復錯誤的提交。 這樣可以將錯誤保留在歷史記錄中,但需要與拉扯您的無效更改的任何人進行較少的協調,並且可以簡單地通過合並來修復其他分支。

重置和推送共享分支的問題在於,破碎的更改仍會出現在其他人的存儲庫和分支中。

如果您確實要重置分支:

假設master分支是從一個commit開始的,我們將其稱為good ,在此基礎上添加的commit將被稱為broken feature分支是從master分支出來的,從我們before調用before的幾次提交開始,然后在一次我們稱為merge-broken的提交中與master (已brokenmerge-broken ,在此之上進行了其他提交,我們稱它們after-broken

這些分支的固定方法如下,丟棄了對masterfeature分支的其他更改:

git branch -f master good
git branch -f feature before
git checkout feature
git merge master
git cherry-pick merge-broken..after-broken

這些更改可以向上游推送,但是如上所述,在公共或共享回購中這可能很危險:

git push origin +master +feature

其他用戶可能需要使用--force標志拉那些分支,並且可能需要以相同的方式調整其本地分支。

暫無
暫無

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

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