zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    188. Best Time to Buy and Sell Stock IV
    452. Minimum Number of Arrows to Burst Balloons
    435. Non-overlapping Intervals
    28. Implement strStr() KMP
    10. Regular Expression Matching
    877. Stone Game
    格式化日期
    Designer属性编辑器简介
    pandas 根据内容匹配并获取索引
    access 中sql语句之“like” 语句的用法
  • 原文地址:https://www.cnblogs.com/simonbaker/p/5432350.html
Copyright © 2011-2022 走看看