zoukankan      html  css  js  c++  java
  • git常见问题总结

    git 慎用命令#

    • 后悔药
    git reset --hard XX
    • 归并
    git rebase XX
    • 重写
    git commit --amend

    git 多分支合并#

    场景#

    线上有2个或多个分支需要合并,本地开发只有一个分支 现在需要把本地开发的分支合并到远端多个分支

    错误做法#

    • 开发时首先再本地切一个新的dev分支
    • 开发完成并验证后,将新的dev分支合并到本地主分支
    • 本地主分支推动到线上本地仓主分支
    • 将本地仓主分支直接合并到远端所有合并分支

    出现的问题是,如果远端所有分支,都是一样的话,这样合并是ok的. 但是现在的情况是远端的各个分支已经有不同的开发状态了. 如果合并上去的话,就会把线上所有的分支信息搞混乱 并且你自己的分支也会携带不属于你自己修改的代码 有和我一样犯错的小伙伴,请不要这样再处理了

    正确做法#

    方法一#

    • 首先更新所有分支
    git fetch --all
    • 查看远程仓所有分支
    git branch -a
    • 新建一个本地需要推送的分支
    git checkout -b newBranch om/newBranch
    • 查看是否拉取成功
    git log -n
    • 切到开发完成分支
    git checkout master
    • 查看需要pick的logId
    git log -n 
    • 切需要推送的分支
    git checkout newBranch
    • pick需要合并的logId
    git cherry-pick logId1 logId2
    • 查看是否是pick正确的代码并push到远端
    git log -ngit statusgit push origin newBranch
    • 合并到主仓即可

    方法二#

    • 合并到主仓后,等合并成功后cherry-pick到其他仓
    • 这个办法比较简单,但是需要等待
    • 其次我只能全部合并,如果想要部分合并logId,还是用法一吧
  • 相关阅读:
    java.lang.NoSuchMethodError: org.springframework.util.Assert.state(ZLjava/util/function/Supplier;)V
    数据结构中常见的树
    ConcurrentHashMap原理分析
    Synchronized锁升级
    thread.join() 阻塞原理分析
    mysql数据精度丢失问题深入探讨
    ThreadPoolExecutor线程池原理
    JVM的内存区域划分(jdk7和jdk8)
    多线程AQS
    Centos 的防火墙(firewalld,iptables)
  • 原文地址:https://www.cnblogs.com/gongxianjin/p/15515233.html
Copyright © 2011-2022 走看看