zoukankan      html  css  js  c++  java
  • git使用cherry-pick和revert抢救错误代码提交

    大多数的新手在新接触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 35af160a63bff3654b9e1d434b17e77f3ecea0ef
      • cherry-pick可以将其他分支的提交合并到当前分支
    • 代码已经移植过来了。剩下的就是撤销dev代码的提交了
      • git checkout dev 
      • git revert 35af160a63bff3654b9e1d434b17e77f3ecea0ef

    至此问题都解决了      

  • 相关阅读:
    AC自动机模板
    2013 ACM/ICPC Asia Regional Changsha Online–C (模拟)
    Codeforces126B
    Codeforces182D
    Codeforces149E
    POJ3080
    POJ2752
    HDU4745
    HDU4737
    POJ1226
  • 原文地址:https://www.cnblogs.com/nightOfStreet/p/11222550.html
Copyright © 2011-2022 走看看