[英]How to safely undo commits that already in remote master branch & move them into another branch?
我現在正在開發一個功能,我想在一個featureX
分支中進行該featureX
但是我忘記創建該分支並簽入該功能。 現在這會引起問題,因為我的團隊遠程主分支(我們正在使用BitBucket)中已經有2個提交,如下所示:
如何將d40ef79
和5e13fd7
移入featureX
分支,以便可以繼續在該featureX
分支上工作,並從master分支中刪除這2個提交,而又不會丟失隊友( 29ac4fb..1606c1a
)創建的最新提交?
我嘗試此答案中的第一個選項,但對我不起作用。 我也嘗試在featureX
分支(從master分支)中嘗試git cherry-pick
featureX
對我也不起作用。
最簡單的方法是還原。
git revert <SHA-1>
撤消git commit。 還原給定提交所做的更改。
reset and force push
# reset the branch to the desired commit
git reset <SHA-1>
還有其他方法,但不建議使用( git push -f
, git rebase
, git filter-branch
)
git cherry-pick <SHA-1>...<SHA-1>
在master分支的頂端應用由提交引入的更改,並使用此更改創建一個新的提交。
的語法...
是一個承諾范圍。 抓取從開始(排除)到最后一個的所有提交。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.