簡體   English   中英

如何安全地撤消已在遠程主分支中的提交並將它們移至另一個分支?

[英]How to safely undo commits that already in remote master branch & move them into another branch?

我現在正在開發一個功能,我想在一個featureX分支中進行該featureX但是我忘記創建該分支並簽入該功能。 現在這會引起問題,因為我的團隊遠程主分支(我們正在使用BitBucket)中已經有2個提交,如下所示:

在此處輸入圖片說明

如何將d40ef795e13fd7移入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 -fgit rebasegit filter-branch


如何將所需的提交添加到不同的分支。

git cherry-pick <SHA-1>...<SHA-1>

在master分支的頂端應用由提交引入的更改,並使用此更改創建一個新的提交。

的語法...是一個承諾范圍。 抓取從開始(排除)到最后一個的所有提交。

在此處輸入圖片說明


閱讀完整的git cherry-pick文檔,獲取可以使用的所有選項

暫無
暫無

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

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