如果你不小心把本應提交到?test
?分支的代碼提交到了?master
?分支(但尚未 push),可以按照以下步驟解決:
方法一(推薦):使用?git reset
?和?git stash
-
首先,確保你在?
master
?分支:git checkout master -
撤銷最后一次提交但保留更改:git reset HEAD~1
或者如果你想保留提交信息:git reset --soft HEAD~1
-
暫存你的更改:git stash
-
切換到?
test
?分支:git checkout test -
應用暫存的更改:git stash pop
-
重新提交更改:
$ git add . $ git commit -m "你的提交信息"
方法二:使用?git cherry-pick
如果你已經做了多個提交,或者想保留原來的提交信息:
-
首先切換到?
test
?分支:git checkout test -
從?
master
?分支挑選提交:git cherry-pick <commit-hash>其中?
<commit-hash>
?是你在?master
?上的錯誤提交的哈希值。 -
回到?
master
?分支并刪除錯誤的提交:$ git checkout master $ git reset --hard HEAD~1
方法三:創建新分支并重置
如果你愿意,也可以:
-
從當前?
master
?創建新分支:git branch test -
重置?
master
?到之前的狀態:git checkout master git reset --hard origin/master
-
切換到?
test
?分支繼續工作:git checkout test
推薦:方法一通常是最簡單直接的解決方案。