簡體   English   中英

如何將 Git 提交移動到另一個分支並在原始分支中刪除它們?

[英]How to move Git commits to another branch and delete them in the original branch?

我現在在一個分支中有以下提交:

在此處輸入圖片說明

我錯誤地開始了分支 B 的工作,並在分支 A 中提交了b581515ef

這 3 次提交應該在分支 B 中而不是在分支 A 中。所有 3 次提交都已推送到我的遠程 Git 服務器。

我的問題

如何將這 3 個提交移動到分支 B 並在分支 A 中刪除它們? 對於分支 B,我希望它從分支 A 中的提交97b分支出來。

我現在會創建分支 B,然后將分支 A 重置為您想要的狀態,然后您需要將其強制推送到遠程服務器。

git checkout -b branchB
git checkout branchA
git reset --hard HEAD~3
git push -f

一直使用 git log 和 git status 檢查狀態。

如果分支 B 不存在並且您在分支 A 上沒有其他工作,則可以編寫

git checkout a
git branch b
git reset --hard 97b

這將創建 B 以指向當前的 A,然后將 A 設置為 97b。 請注意,如果您推送 A,則需要通過執行git push origin +a來強制推送。

如果你在分支 B 上有其他工作,你可以做

git checkout b
git cherry-pick 5ef 161 b58b
git checkout a
git reset --hard 97b

您還需要對 a 進行強制推動。

暫無
暫無

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

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