远程代码回滚和分支merge

远程代码回滚

git checkout master
git reset --hard r-180111-161400-xxx
git reset --soft origin/master
git commit -a -m "revert master to r-180111-161400-xxx, because of先不修了"
git push origin master
  1. 在本地将分支切到master
  2. 将本地代码回滚到上一个稳定版本r-180111-161400-xxx
  3. 将本地master分支的head指向远程master(确保提交代码到远程时,不需要merge)
  4. 提交回滚的代码
  5. 将本地回滚的代码push到远程master

仓库代码回滚后,同一分支merge

git checkout 分支名
git reset --soft 回滚的那个编号(master revert)
git stash
git merge origin/master
git stash pop
git mergetool
git commit -m "merge & keep code"
git push
  1. 保留本地分支代码的改动,将head指向回滚时的那个“提交点”,可以从远程仓库或本地master获取回滚点(确保后续merge的时候,代码不会丢)
  2. 暂存改动的代码
  3. merge远程的最新代码到本地
  4. 将暂存的代码和最新的代码合并
  5. 提交merge最新后的代码和回滚后修改好的代码
  6. 将本地分支代码提交到远程

命令区分

  • git reset --hard 和 --soft 的区别?

参考链接:http://blog.csdn.net/carolzhang8406/article/details/49761927

根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:

    git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息

    git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级(修改的源码会保留)。如果还要提交,直接commit即可

    git reset  --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,此命令 慎用!


  • git fetch 和 git pull 的区别?

参考链接:http://blog.csdn.net/hudashi/article/details/7664457

git fetch:相当于是从远程获取最新版本到本地,不会自动merge(即代码不会同步远程代码,需执行git merge后会同步)

git pull:相当于是从远程获取最新版本并merge到本地(相当于git fetch 和 git merge

发布了2 篇原创文章 · 获赞 6 · 访问量 6万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览