git rebase合并了编译不过的服务器代码如何处理?

场景

本地有commit过(版本标识为c1),代码可以编译过,然后合并服务器代码,先

git fetch

命令从服务器拉取代码,调用:

git rebase

将服务器分支合并到本地master分支。

现在有个问题是,有坑神上传了编译不过的代码,而且他暂时而无法搞定,没办法,我只能通过;

git reset --hard 版本哈希

将代码还原到坑神上传的有错的版本(标记为R1)的前一个版本(标记为v1),此时是编译过的,但我提交的代码不见了,现在得想办法将我提交的代码合并到v1,经询问度娘有如下方案(参考Git合并特定commits 到另一个分支),调用:

git cherry-pick c1的哈希

即可实现将c1合并到v1。

总结和思考

1.本地应该有一个服务器的临时分支(或者缓存),其保持的是你最后一次pull或者fetch的服务器版本状态,所以你执行git rebase后,会将这个临时分支合并到本地的master分支;
2.如果使用git reset --hard 回退版本,则回退版本的前面的版本应该也会保存一个临时分支,所以你在调用git reset --hard 恢复到回退前的版本。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,770评论 1 17
  • 昨天做了很长的梦,梦中我独自去了日本,与身处日本的朋友汇合。买饮料时好像可以用支付宝,但得先注册,还得注明要在日本...
    傲娇静Q阅读 180评论 0 1
  • 昨天晚上做了一个梦! 梦里面 我和爸妈一起去吃了自助,我爸要吃年糕,我去拿。 盘子里居然只剩下了三块年糕...
    晚荨阅读 182评论 0 0
  • 第一点:工欲善其事必先利其器,对于初学者而言请不要被新技术的简洁快速以及优势所迷惑,先把基础学扎实才是王道;欲速则...
    发觉原来我只是250阅读 270评论 0 0