git 如何回滚

 宠医_臻爱一生_156 发布于 2022-10-25 06:59

场景:

  • 1.修改文件A,commit并push到远程仓库

  • 2.修改文件B,commit,也push到了远程

  • 3.现在A文件的修改错误了,需要回滚到之前的版本,但是文件B的修改需要保存下来,请问现在应该如何操作?

如果用git reset --hard命令回滚到A修改的版本号,那么B的修改也被丢弃了

10 个回答
  • 只能revert,不能reset,凡是已经push到远程的commit都不能reset或者commit --amend,这个会破坏别人的版本历史。

    关于revert可以看看我的这篇文章:/a/11...

    2022-10-26 14:23 回答
    1. git log 查看 A之前 A B的commitId

    2. git reset --hard A之前的commitId

    3. git cherry-pick B的commitId

    这个功能叫检出功能,可以拿到某一次提交的修改

    2022-10-26 14:23 回答
  • git rebase -i HEAD^^^
    用默认编辑器打开一个文档,修个A那次提交前面改成drop或简写为d 保存。
    会自动舍弃那次提交(如果有冲突要自己解决冲突)

    2022-10-26 14:24 回答
  • 不要在 public branch 上对已经提交的 commit 使用 git reset,如果有人已经 pull 了这些 commit,会很麻烦
    这种情况下应该用 git revert,会产生一个单独的 commit

    2022-10-26 14:24 回答
  • 不可以直接把错了的修改好,然后提交一次覆盖掉吗?

    2022-10-26 14:24 回答
  • 这种情况,我一般直接查log,把A文件还原,保证B文件完整

    2022-10-26 14:24 回答
  • git reset --soft HEAD@{id},这样就是将提交撤回了,但是工作区的修改不会消失,然后将错误的修改改对了再提交并push到远端吧

    2022-10-26 14:24 回答
  • 这么做不会丢吧,我们都是这么做的..
    git reset --hard命令回滚到A修改的版本号
    git pull --rebase origin 分支号 拉下来B的代码看看有没有冲突,有冲突解决
    后 git push ..

    2022-10-26 14:24 回答
  • git revert (版本号)

    2022-10-26 14:25 回答
  • $ mkdir test
    $ cd test
    $ git init
    $ echo aaaa>a.txt
    $ echo bbbb>b.txt
    $ git commit -a -m "init two files"
    [master (root-commit) 2ca34b8] init
    ...
    $ echo update>a.txt
    $ git commit -a -m "update file a"
    [master **e216f56**] update file a
    ...
    $ echo update>b.txt
    $ git commit -a -m "update file b"
    [master 6906147] update file b
    ...
    $ git revert **e216f56**
    unix2dos: converting file f:/test/.git/COMMIT_EDITMSG...
    dos2unix: converting file f:/test/.git/COMMIT_EDITMSG...
    [master 2a9c653] Revert "update file a"
    ...
    2022-10-26 14:25 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有