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,还是用法一吧
原文地址:https://www.cnblogs.com/gongxianjin/p/15515233.html