• git之cherry-pick


    当想把当前分支提交的代码,也在其他分支提交,那可以用cherry-pick命令。

    1 假设在master分支commit的id为:abc12345;

    2 切换到其他分支,如develop分支;

    3 在develop分支,输入git cherry-pick abc12345.

    这样就实现了把master分支上提交的代码,也在develop分支提交。

    注意事项:

    1 在develop顺利提交后,git会自动合并到develop分支下对应的文件的;

    2 别忘了push,才能同步到远程服务器;

    3 如果在master提交的代码和develop分支存在冲突,就需要先解决冲突;

    可参考:

    git cherry-pick 小结

    http://blog.csdn.net/wh_19910525/article/details/7554430

    10 个迅速提升你 Git 水平的提示

    http://www.oschina.net/translate/10-tips-git-next-level

    //==========冲突以及解决办法(20160426)==========//

    切换到master分支,然后把develop分支下的代码,通过cherry-pick到master分支,结果遇到冲突。

    (在master下,根本没有develop下的该文件夹。比如develop下的test文件夹,在master下是不存在的。所以就造成冲突了。)

    如下图所示:

    执行cherry-pick后冲突:

    冲突情况下,想切换分支:(很明显必须要先解决冲突,才可以切换分支)

    那怎么解决冲突了?

    直接到冲突目录,手动删除文件?不行的,这样git跟踪不到的。

    正如第一张图所给的提示:"width 'git add <paths>' or 'git rm <paths>'",所以,就可用git rm来删除冲突的文件。

    执行git rm ***(文件夹路径,如style/test) -r(递归删除,针对删除的是文件夹目录)。可参考:http://classfoo.com/ccby/article/KkGHbSF

     

    不过,删除成功后,master还是显示"(master|CHERRY-PICKING)"。

    那怎么办?

    我们用git status后发现又有提示"use 'git cherry-pick --abort'...",所以如果不想继续cherry-pick,就可以执行取消操作(abort);不然,则继续(continue)

    可参考:

    https://segmentfault.com/q/1010000000095373

    http://classfoo.com/ccby/article/KkGHbSF

     http://www.360doc.com/content/11/1213/19/2036337_172005672.shtml

  • 相关阅读:
    地图实现
    shiro有哪些组件
    MyBatis 与 Hibernate 有哪些不同?
    .#{}和${}的区别是什么?
    SpringMVC 流程
    怎么防止重复提交
    2019.4.17 映纷创意首页铺设练习
    2019.4.16 掌恒首页铺设练习
    2019.4.9 小作业 淘宝商品显示块
    2019.4.9 HTML+CSS写静态百度首页
  • 原文地址:https://www.cnblogs.com/simonbaker/p/5432350.html
Copyright © 2020-2023  润新知