如果你不小心把本应提交到 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
推荐:方法一通常是最简单直接的解决方案。