大多数的新手在新接触git时都会出现这样的问题。代码写完了,提交到dev分支进行测试。一高兴忘记切回来,继续在dev分支开发,写完之后提交时猛的发现,我靠,我怎么在dev上面写代码,此时内心必然是一阵骚乱。不要方!
来,复现车祸现场
git checkout feature_1
touch a.txt
git add a.txt
git commit -am "create a.txt"
git checkout dev
git merge feature_1
git push origin dev
touch b.txt
git add b.txt
git commit -am "create b.txt"
-- git checkout 好像不对
理论上我们创建第二个文件应该是在feature_1分支,结果不小心把代码写在了dev分支提交了。此时我们要把这一次的提交撤回,但是代码又要保存下来并且移植到feature_1分支
来,上代码
git log ## 此时在dev分支
git checkout feature_1 ##复制 commit 内容 切换分支到feature_1分支
git cherry-pick 35af160a63bff3654b9e1d434b17e77f3ecea0efcherry-pick可以将其他分支的提交合并到当前分支代码已经移植过来了。剩下的就是撤销dev代码的提交了
git checkout dev git revert 35af160a63bff3654b9e1d434b17e77f3ecea0ef
至此问题都解决了
转载于:https://www.cnblogs.com/nightOfStreet/p/11222550.html