关闭

Git本地回滚重新修改代码再push到远程问题

522人阅读 评论(3) 收藏 举报
分类:

   引言

   我们在开发的过程中,可能由于某些原因需要我们进行代码的回归到某个指定的版本,那么我们应该怎样操作才是正确的呢?下面先看看容易犯错的操作流程:


   1.本地git reset --hard commit id回退到某个版本

   2.回退版本后,未push到远程就修改了本地代码

   3.修改完后再push到远程,提示先pull


   4.问题是pull远程代码就覆盖掉本地修改的了

  

   操作分析:


   一开始是这样:

     A - B - C - D    远程
     A - B - C - D    本地


     第一步,git reset --hard B

     A - B - C - D    远程
     A - B               本地


     第二步,修改本地代码,记为 E

     A - B - C - D    远程
     A - B - E          本地


  如果我们现在pull 远程代码,情况如下:

     
    A - B - C - D    远程
    A - B - E - D'    本地
其中,D' 包含了 C 和 D 的改动,因为 git pull 相当于 git fetch 加上 git merge。这个时候 merge 的是 "Fetched HEAD",也就是远程的 D。同时,D' 的 message 应该会出现一句 "merge … from ...."

如果你希望远程是 A - B - E,那就不要 pull,git push --force强制推送。

0
0
查看评论

git 回退到某版本后,再在此版本上更新,无法push

用git reset --hard HEAD^^ 回退到前两版本后,再在此版本上更新后, 想push, 但出错, 提示说remote端的版本比我本地版本要高. 求解救方案? (我确定要回退后更新的现在的代码) 解决办法: 这种“回退”就是在否认历史,如果有其他人也在用你的remote,...
  • yu870646595
  • yu870646595
  • 2016-05-18 13:32
  • 2342

git远端代码库 回滚

origin 是默认的远程版本库名称 你可以在 .git/config 之中进行修改 git常用命令: 1. 切换分支 git checkout master  //表示切换分支到master 2. 创建分支branch git branch branch_name...
  • zhangbinsijifeng
  • zhangbinsijifeng
  • 2015-12-29 10:51
  • 775

git push将本地分支推送到远程

$ git push <远程主机名> <本地分支名>:<远程分支名> 比如我要将本地的wy分支推送到远程wy分支 git push origin wy:wyhttp://www.yiibai.com/git/git_push.html
  • xiyangyang8110
  • xiyangyang8110
  • 2016-12-02 14:00
  • 573

创建本地分支,push到远程

git branch dev //创建本地分支dev git checkout dev  //切换到本地分支dev git add .  //添加修改内容到本地仓储 git commit -m 'update register'  //提交...
  • qq_34206198
  • qq_34206198
  • 2016-07-19 12:26
  • 1782

git push代码到远程服务器

git push代码
  • sinat_28729797
  • sinat_28729797
  • 2015-09-24 12:02
  • 2596

git提交修改到远程仓库

git的主要作用,就是要将自己本地的修改提交到远程仓库中 $ git status On branch master Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to...
  • qhshiniba
  • qhshiniba
  • 2015-03-02 10:39
  • 1950

git 分支管理 推送本地分支到远程分支等

1、创建本地分支 local_branch      git branch local_branch 2、创建本地分支local_branch 并切换到local_branch分支    git checkout -b local_branch ...
  • hijiankang
  • hijiankang
  • 2015-08-03 12:23
  • 45753

git各种状态下撤销修改的方法

使用git时会出现各种各样的问题,下面是几种情况下怎么反悔的操作 一,未加入缓存区,撤销文件修改      git checkout -- file 二,已加入缓存区,撤销文件提交      git reset HARD file 三,已提...
  • lkl713
  • lkl713
  • 2015-04-03 11:12
  • 4312

Git如何把本地代码推送到远程仓库

最近在项目中使用到Git版本控制系统进行代码的管理以便于团队成员的协作,由于之前使用的是SVN来进行版本控制,所以对于Git的使用还是有待熟练掌握。Git与SVN类似,个人认为两者之间比较直观的区别就是Git属于分布式的而SVN是集中式的,Git不需要联网(连接代码服务器)即可进行代码的提交以记录每...
  • yl_cc
  • yl_cc
  • 2017-05-24 15:06
  • 9334

Git把Tag推送到远程仓库

refs: http://blog.csdn.net/hustpzb/article/details/8056518 http://blog.csdn.net/wangjia55/article/details/8793577 # 创建附注标签 $ git tag -a ...
  • Henry_Wu001
  • Henry_Wu001
  • 2015-07-04 23:40
  • 6199
    个人资料
    • 访问:565642次
    • 积分:18497
    • 等级:
    • 排名:第599名
    • 原创:274篇
    • 转载:20篇
    • 译文:0篇
    • 评论:5683条
    和我交谈
    点击这里给我发消息 点击这里给我发消息
    时间你好?
    博客专栏
    最新评论